summaryrefslogtreecommitdiffstats
path: root/fs/nfs
diff options
context:
space:
mode:
authorJ. Bruce Fields <bfields@citi.umich.edu>2007-02-22 18:48:53 -0500
committerJ. Bruce Fields <bfields@citi.umich.edu>2007-05-06 17:38:19 -0400
commit70cc6487a4e08b8698c0e2ec935fb48d10490162 (patch)
tree3dbf00694a5fcbea48233b78697a50effdcc80c9 /fs/nfs
parentc2fa1b8a6c059dd08a802545fed3badc8df2adc1 (diff)
downloadlinux-70cc6487a4e08b8698c0e2ec935fb48d10490162.tar.gz
linux-70cc6487a4e08b8698c0e2ec935fb48d10490162.tar.bz2
linux-70cc6487a4e08b8698c0e2ec935fb48d10490162.zip
locks: make ->lock release private data before returning in GETLK case
The file_lock argument to ->lock is used to return the conflicting lock when found. There's no reason for the filesystem to return any private information with this conflicting lock, but nfsv4 is. Fix nfsv4 client, and modify locks.c to stop calling fl_release_private for it in this case. Signed-off-by: "J. Bruce Fields" <bfields@citi.umich.edu> Cc: "Trond Myklebust" <Trond.Myklebust@netapp.com>"
Diffstat (limited to 'fs/nfs')
-rw-r--r--fs/nfs/nfs4proc.c1
1 files changed, 1 insertions, 0 deletions
diff --git a/fs/nfs/nfs4proc.c b/fs/nfs/nfs4proc.c
index f52cf5c33c6c..d9000ec52f72 100644
--- a/fs/nfs/nfs4proc.c
+++ b/fs/nfs/nfs4proc.c
@@ -3018,6 +3018,7 @@ static int _nfs4_proc_getlk(struct nfs4_state *state, int cmd, struct file_lock
case -NFS4ERR_DENIED:
status = 0;
}
+ request->fl_ops->fl_release_private(request);
out:
up_read(&clp->cl_sem);
return status;