summaryrefslogtreecommitdiffstats
path: root/fs/nfs/direct.c
diff options
context:
space:
mode:
authorTrond Myklebust <Trond.Myklebust@netapp.com>2012-06-19 13:39:14 -0400
committerTrond Myklebust <Trond.Myklebust@netapp.com>2012-06-19 18:42:14 -0400
commit5a695da26367f53a368c90435e0b883c12f02791 (patch)
tree0bd0e628544370e9a5edabcdf0d38859d1364d6e /fs/nfs/direct.c
parent0a9c63fae7df086ff5e107273c3cce8642430974 (diff)
downloadlinux-5a695da26367f53a368c90435e0b883c12f02791.tar.gz
linux-5a695da26367f53a368c90435e0b883c12f02791.tar.bz2
linux-5a695da26367f53a368c90435e0b883c12f02791.zip
NFS: Fix a refcounting issue in O_DIRECT
In nfs_direct_write_reschedule(), the requests from nfs_scan_commit_list have a refcount of 2, whereas the operations in nfs_direct_write_completion_ops expect them to have a refcount of 1. This patch adds a call to release the extra references. Signed-off-by: Trond Myklebust <Trond.Myklebust@netapp.com> Cc: Fred Isaman <iisaman@netapp.com>
Diffstat (limited to 'fs/nfs/direct.c')
-rw-r--r--fs/nfs/direct.c1
1 files changed, 1 insertions, 0 deletions
diff --git a/fs/nfs/direct.c b/fs/nfs/direct.c
index 3168f6e3d4d4..9a4cbfc85d81 100644
--- a/fs/nfs/direct.c
+++ b/fs/nfs/direct.c
@@ -490,6 +490,7 @@ static void nfs_direct_write_reschedule(struct nfs_direct_req *dreq)
dreq->error = -EIO;
spin_unlock(cinfo.lock);
}
+ nfs_release_request(req);
}
nfs_pageio_complete(&desc);