summaryrefslogtreecommitdiffstats
path: root/fs/locks.c
diff options
context:
space:
mode:
authorJ. Bruce Fields2007-02-23 00:48:53 +0100
committerJ. Bruce Fields2007-05-06 23:38:19 +0200
commit70cc6487a4e08b8698c0e2ec935fb48d10490162 (patch)
tree3dbf00694a5fcbea48233b78697a50effdcc80c9 /fs/locks.c
parentlocks: create posix-to-flock helper functions (diff)
downloadkernel-qcow2-linux-70cc6487a4e08b8698c0e2ec935fb48d10490162.tar.gz
kernel-qcow2-linux-70cc6487a4e08b8698c0e2ec935fb48d10490162.tar.xz
kernel-qcow2-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/locks.c')
-rw-r--r--fs/locks.c4
1 files changed, 0 insertions, 4 deletions
diff --git a/fs/locks.c b/fs/locks.c
index 957775ba6468..b07e6e6f819b 100644
--- a/fs/locks.c
+++ b/fs/locks.c
@@ -1665,8 +1665,6 @@ int fcntl_getlk(struct file *filp, struct flock __user *l)
if (filp->f_op && filp->f_op->lock) {
error = filp->f_op->lock(filp, F_GETLK, &file_lock);
- if (file_lock.fl_ops && file_lock.fl_ops->fl_release_private)
- file_lock.fl_ops->fl_release_private(&file_lock);
if (error < 0)
goto out;
else
@@ -1804,8 +1802,6 @@ int fcntl_getlk64(struct file *filp, struct flock64 __user *l)
if (filp->f_op && filp->f_op->lock) {
error = filp->f_op->lock(filp, F_GETLK, &file_lock);
- if (file_lock.fl_ops && file_lock.fl_ops->fl_release_private)
- file_lock.fl_ops->fl_release_private(&file_lock);
if (error < 0)
goto out;
else