]> git.ipfire.org Git - thirdparty/kernel/stable.git/commitdiff
locks: pass correct "before" pointer to locks_unlink_lock in generic_add_lease
authorJeff Layton <jlayton@primarydata.com>
Fri, 22 Aug 2014 13:58:22 +0000 (09:58 -0400)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Sun, 5 Oct 2014 20:40:57 +0000 (13:40 -0700)
commit e0b760ff71be168d4e623f7c3612e98902ab93e9 upstream.

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.

Signed-off-by: Jeff Layton <jlayton@primarydata.com>
Reviewed-by: Christoph Hellwig <hch@lst.de>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
fs/locks.c

index 717fbc404e6b2ac1522175758cc365a847ca0c52..be530f9b13cea4d95c2f0a1d4573729d6bea5c7f 100644 (file)
@@ -1595,7 +1595,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);