summaryrefslogtreecommitdiffstats
path: root/fs/nfs/nfs4filelayout.c
diff options
context:
space:
mode:
authorTrond Myklebust2012-05-22 22:36:27 +0200
committerTrond Myklebust2012-05-22 22:36:27 +0200
commit53b8ee346463946f88b3e1639d688c384df1166c (patch)
tree31b089f4c9198293902d6e3ba46ee53c92c34726 /fs/nfs/nfs4filelayout.c
parentMerge branch 'bugfixes' into nfs-for-next (diff)
downloadkernel-qcow2-linux-53b8ee346463946f88b3e1639d688c384df1166c.tar.gz
kernel-qcow2-linux-53b8ee346463946f88b3e1639d688c384df1166c.tar.xz
kernel-qcow2-linux-53b8ee346463946f88b3e1639d688c384df1166c.zip
NFSv4.1: Fix a bad reference count issue in the pNFS commit code
filelayout_scan_commit_lists needs to bump the reference count on the struct nfs_page just like nfs_scan_commit_list(). Reported-by: Andy Adamson <andros@netapp.com> Signed-off-by: Trond Myklebust <Trond.Myklebust@netapp.com>
Diffstat (limited to 'fs/nfs/nfs4filelayout.c')
-rw-r--r--fs/nfs/nfs4filelayout.c1
1 files changed, 1 insertions, 0 deletions
diff --git a/fs/nfs/nfs4filelayout.c b/fs/nfs/nfs4filelayout.c
index 474c6305afd9..33849d3bc885 100644
--- a/fs/nfs/nfs4filelayout.c
+++ b/fs/nfs/nfs4filelayout.c
@@ -1106,6 +1106,7 @@ transfer_commit_list(struct list_head *src, struct list_head *dst,
list_for_each_entry_safe(req, tmp, src, wb_list) {
if (!nfs_lock_request(req))
continue;
+ kref_get(&req->wb_kref);
if (cond_resched_lock(cinfo->lock))
list_safe_reset_next(req, tmp, wb_list);
nfs_request_remove_commit_list(req, cinfo);