filelock: convert locks_wake_up_blocks to take a file_lock_core pointer
authorJeff Layton <jlayton@kernel.org>
Wed, 31 Jan 2024 23:02:11 +0000 (18:02 -0500)
committerChristian Brauner <brauner@kernel.org>
Mon, 5 Feb 2024 12:11:41 +0000 (13:11 +0100)
Have locks_wake_up_blocks take a file_lock_core pointer, and fix up the
callers to pass one in.

Signed-off-by: Jeff Layton <jlayton@kernel.org>
Link: https://lore.kernel.org/r/20240131-flsplit-v3-30-c6129007ee8d@kernel.org
Reviewed-by: NeilBrown <neilb@suse.de>
Signed-off-by: Christian Brauner <brauner@kernel.org>
fs/locks.c

index 6892511ed89b75fae4a00119f7551a64b69cfb16..9f3670ba0880c84c4b7b0712ef4ba91ccf02cb39 100644 (file)
@@ -806,7 +806,7 @@ static void locks_insert_block(struct file_lock_core *blocker,
  *
  * Must be called with the inode->flc_lock held!
  */
-static void locks_wake_up_blocks(struct file_lock *blocker)
+static void locks_wake_up_blocks(struct file_lock_core *blocker)
 {
        /*
         * Avoid taking global lock if list is empty. This is safe since new
@@ -815,11 +815,11 @@ static void locks_wake_up_blocks(struct file_lock *blocker)
         * fl_blocked_requests list does not require the flc_lock, so we must
         * recheck list_empty() after acquiring the blocked_lock_lock.
         */
-       if (list_empty(&blocker->c.flc_blocked_requests))
+       if (list_empty(&blocker->flc_blocked_requests))
                return;
 
        spin_lock(&blocked_lock_lock);
-       __locks_wake_up_blocks(&blocker->c);
+       __locks_wake_up_blocks(blocker);
        spin_unlock(&blocked_lock_lock);
 }
 
@@ -835,7 +835,7 @@ locks_unlink_lock_ctx(struct file_lock *fl)
 {
        locks_delete_global_locks(&fl->c);
        list_del_init(&fl->c.flc_list);
-       locks_wake_up_blocks(fl);
+       locks_wake_up_blocks(&fl->c);
 }
 
 static void
@@ -1328,11 +1328,11 @@ retry:
                        locks_insert_lock_ctx(left, &fl->c.flc_list);
                }
                right->fl_start = request->fl_end + 1;
-               locks_wake_up_blocks(right);
+               locks_wake_up_blocks(&right->c);
        }
        if (left) {
                left->fl_end = request->fl_start - 1;
-               locks_wake_up_blocks(left);
+               locks_wake_up_blocks(&left->c);
        }
  out:
        spin_unlock(&ctx->flc_lock);
@@ -1414,7 +1414,7 @@ int lease_modify(struct file_lock *fl, int arg, struct list_head *dispose)
        if (error)
                return error;
        lease_clear_pending(fl, arg);
-       locks_wake_up_blocks(fl);
+       locks_wake_up_blocks(&fl->c);
        if (arg == F_UNLCK) {
                struct file *filp = fl->c.flc_file;