mirror of
https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
synced 2026-04-10 21:48:45 -04:00
btrfs: move delayed ref head unselection to delayed-ref.c
The unselect_delayed_ref_head() at extent-tree.c doesn't really belong in that file as it's a delayed refs specific detail and therefore should be at delayed-ref.c. Further its inverse, btrfs_select_ref_head(), is at delayed-ref.c, so it only makes sense to have it there too. So move unselect_delayed_ref_head() into delayed-ref.c and rename it to btrfs_unselect_ref_head() so that its name closely matches its inverse (btrfs_select_ref_head()). Reviewed-by: Boris Burkov <boris@bur.io> Reviewed-by: Qu Wenruo <wqu@suse.com> Signed-off-by: Filipe Manana <fdmanana@suse.com> Reviewed-by: David Sterba <dsterba@suse.com> Signed-off-by: David Sterba <dsterba@suse.com>
This commit is contained in:
committed by
David Sterba
parent
a98048e10d
commit
58a4391810
@@ -612,6 +612,16 @@ struct btrfs_delayed_ref_head *btrfs_select_ref_head(
|
||||
return head;
|
||||
}
|
||||
|
||||
void btrfs_unselect_ref_head(struct btrfs_delayed_ref_root *delayed_refs,
|
||||
struct btrfs_delayed_ref_head *head)
|
||||
{
|
||||
spin_lock(&delayed_refs->lock);
|
||||
head->processing = false;
|
||||
delayed_refs->num_heads_ready++;
|
||||
spin_unlock(&delayed_refs->lock);
|
||||
btrfs_delayed_ref_unlock(head);
|
||||
}
|
||||
|
||||
void btrfs_delete_ref_head(struct btrfs_delayed_ref_root *delayed_refs,
|
||||
struct btrfs_delayed_ref_head *head)
|
||||
{
|
||||
|
||||
@@ -378,6 +378,8 @@ void btrfs_delete_ref_head(struct btrfs_delayed_ref_root *delayed_refs,
|
||||
|
||||
struct btrfs_delayed_ref_head *btrfs_select_ref_head(
|
||||
struct btrfs_delayed_ref_root *delayed_refs);
|
||||
void btrfs_unselect_ref_head(struct btrfs_delayed_ref_root *delayed_refs,
|
||||
struct btrfs_delayed_ref_head *head);
|
||||
|
||||
int btrfs_check_delayed_seq(struct btrfs_fs_info *fs_info, u64 seq);
|
||||
|
||||
|
||||
@@ -1827,16 +1827,6 @@ select_delayed_ref(struct btrfs_delayed_ref_head *head)
|
||||
return ref;
|
||||
}
|
||||
|
||||
static void unselect_delayed_ref_head(struct btrfs_delayed_ref_root *delayed_refs,
|
||||
struct btrfs_delayed_ref_head *head)
|
||||
{
|
||||
spin_lock(&delayed_refs->lock);
|
||||
head->processing = false;
|
||||
delayed_refs->num_heads_ready++;
|
||||
spin_unlock(&delayed_refs->lock);
|
||||
btrfs_delayed_ref_unlock(head);
|
||||
}
|
||||
|
||||
static struct btrfs_delayed_extent_op *cleanup_extent_op(
|
||||
struct btrfs_delayed_ref_head *head)
|
||||
{
|
||||
@@ -1911,7 +1901,7 @@ static int cleanup_ref_head(struct btrfs_trans_handle *trans,
|
||||
|
||||
ret = run_and_cleanup_extent_op(trans, head);
|
||||
if (ret < 0) {
|
||||
unselect_delayed_ref_head(delayed_refs, head);
|
||||
btrfs_unselect_ref_head(delayed_refs, head);
|
||||
btrfs_debug(fs_info, "run_delayed_extent_op returned %d", ret);
|
||||
return ret;
|
||||
} else if (ret) {
|
||||
@@ -1973,7 +1963,7 @@ static int btrfs_run_delayed_refs_for_head(struct btrfs_trans_handle *trans,
|
||||
if (ref->seq &&
|
||||
btrfs_check_delayed_seq(fs_info, ref->seq)) {
|
||||
spin_unlock(&locked_ref->lock);
|
||||
unselect_delayed_ref_head(delayed_refs, locked_ref);
|
||||
btrfs_unselect_ref_head(delayed_refs, locked_ref);
|
||||
return -EAGAIN;
|
||||
}
|
||||
|
||||
@@ -2021,7 +2011,7 @@ static int btrfs_run_delayed_refs_for_head(struct btrfs_trans_handle *trans,
|
||||
|
||||
btrfs_free_delayed_extent_op(extent_op);
|
||||
if (ret) {
|
||||
unselect_delayed_ref_head(delayed_refs, locked_ref);
|
||||
btrfs_unselect_ref_head(delayed_refs, locked_ref);
|
||||
btrfs_put_delayed_ref(ref);
|
||||
return ret;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user