locks: don't call locks_release_private from locks_copy_lock
authorJeff Layton <jlayton@primarydata.com>
Mon, 11 Aug 2014 18:09:35 +0000 (14:09 -0400)
committerJeff Layton <jlayton@primarydata.com>
Mon, 11 Aug 2014 18:24:22 +0000 (14:24 -0400)
All callers of locks_copy_lock pass in a brand new file_lock struct, so
there's no need to call locks_release_private on it. Replace that with
a warning that fires in the event that we receive a target lock that
doesn't look like it's properly initialized.

Acked-by: J. Bruce Fields <bfields@fieldses.org>
Signed-off-by: Jeff Layton <jlayton@primarydata.com>
fs/locks.c

index 356667a434c1f51284e97ef7d93ea219f0b501f7..2c2d4f5022a7df0925d1ac099278ca2497d0a83b 100644 (file)
@@ -285,7 +285,8 @@ EXPORT_SYMBOL(__locks_copy_lock);
 
 void locks_copy_lock(struct file_lock *new, struct file_lock *fl)
 {
-       locks_release_private(new);
+       /* "new" must be a freshly-initialized lock */
+       WARN_ON_ONCE(new->fl_ops);
 
        __locks_copy_lock(new, fl);
        new->fl_file = fl->fl_file;