btrfs: collapse wait_on_state() to its caller wait_extent_bit()
authorFilipe Manana <fdmanana@suse.com>
Fri, 22 Sep 2023 10:39:06 +0000 (11:39 +0100)
committerDavid Sterba <dsterba@suse.com>
Thu, 12 Oct 2023 14:44:15 +0000 (16:44 +0200)
The wait_on_state() function is very short and has a single caller, which
is wait_extent_bit(), so remove the function and put its code into the
caller.

Reviewed-by: Anand Jain <anand.jain@oracle.com>
Signed-off-by: Filipe Manana <fdmanana@suse.com>
Reviewed-by: David Sterba <dsterba@suse.com>
Signed-off-by: David Sterba <dsterba@suse.com>
fs/btrfs/extent-io-tree.c

index 19a7a0b3e8636d864a47ef32dd7e0bf96aecfad3..9fb4f38347fe81be8ab2f3e3fbad463cdbb01404 100644 (file)
@@ -127,7 +127,7 @@ void extent_io_tree_release(struct extent_io_tree *tree)
                /*
                 * No need for a memory barrier here, as we are holding the tree
                 * lock and we only change the waitqueue while holding that lock
-                * (see wait_on_state()).
+                * (see wait_extent_bit()).
                 */
                ASSERT(!waitqueue_active(&state->wq));
                free_extent_state(state);
@@ -748,19 +748,6 @@ out:
 
 }
 
-static void wait_on_state(struct extent_io_tree *tree,
-                         struct extent_state *state)
-               __releases(tree->lock)
-               __acquires(tree->lock)
-{
-       DEFINE_WAIT(wait);
-       prepare_to_wait(&state->wq, &wait, TASK_UNINTERRUPTIBLE);
-       spin_unlock(&tree->lock);
-       schedule();
-       spin_lock(&tree->lock);
-       finish_wait(&state->wq, &wait);
-}
-
 /*
  * Wait for one or more bits to clear on a range in the state tree.
  * The range [start, end] is inclusive.
@@ -798,9 +785,15 @@ process_node:
                        goto out;
 
                if (state->state & bits) {
+                       DEFINE_WAIT(wait);
+
                        start = state->start;
                        refcount_inc(&state->refs);
-                       wait_on_state(tree, state);
+                       prepare_to_wait(&state->wq, &wait, TASK_UNINTERRUPTIBLE);
+                       spin_unlock(&tree->lock);
+                       schedule();
+                       spin_lock(&tree->lock);
+                       finish_wait(&state->wq, &wait);
                        free_extent_state(state);
                        goto again;
                }