diff options
author | Filipe Manana | 2023-09-22 11:39:06 +0100 |
---|---|---|
committer | David Sterba | 2023-10-12 16:44:15 +0200 |
commit | df2a8e70c3c397d4780027be3151d3c3ae9d47a6 (patch) | |
tree | 323a705309edda4d41c6b2161fb04c837c2c3a46 /fs/btrfs | |
parent | 28967c762220d22ca26f4a5acacb69b9fbb9748b (diff) |
btrfs: collapse wait_on_state() to its caller wait_extent_bit()
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>
Diffstat (limited to 'fs/btrfs')
-rw-r--r-- | fs/btrfs/extent-io-tree.c | 23 |
1 files changed, 8 insertions, 15 deletions
diff --git a/fs/btrfs/extent-io-tree.c b/fs/btrfs/extent-io-tree.c index 19a7a0b3e863..9fb4f38347fe 100644 --- a/fs/btrfs/extent-io-tree.c +++ b/fs/btrfs/extent-io-tree.c @@ -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; } |