projects/linux·commit e0b760ff

locks: pass correct "before" pointer to locks_unlink_lock in generic_add_lease

e0b760ff · Jeff Layton <[email protected]> · 2014-08-22 09:58:22 -04:00

The argument to locks_unlink_lock can't be just any pointer to a
pointer. It must be a pointer to the fl_next field in the previous
lock in the list.

Cc: <[email protected]> # v3.15+
Signed-off-by: Jeff Layton <[email protected]>
Reviewed-by: Christoph Hellwig <[email protected]>
Commit
e0b760ff71be168d4e623f7c3612e98902ab93e9
Parents
5317821c

Changes

1 files changed · +1 −1

FileStatusAddDelContent
fs/locks.cmodified+1−1View file

fs/locks.c

View file
diff --git a/fs/locks.c b/fs/locks.c
index cb66fb0..bb08857 100644
--- a/fs/locks.c
+++ b/fs/locks.c
@@ -1619,7 +1619,7 @@ static int generic_add_lease(struct file *filp, long arg, struct file_lock **flp
smp_mb();
error = check_conflicting_open(dentry, arg);
if (error)
- locks_unlink_lock(flp);
+ locks_unlink_lock(before);
out:
if (is_deleg)
mutex_unlock(&inode->i_mutex);