]> www.infradead.org Git - users/dwmw2/linux.git/commitdiff
btrfs: pass fs_info to btrfs_delete_ref_head()
authorFilipe Manana <fdmanana@suse.com>
Tue, 22 Oct 2024 12:39:11 +0000 (13:39 +0100)
committerDavid Sterba <dsterba@suse.com>
Mon, 11 Nov 2024 13:34:20 +0000 (14:34 +0100)
One of the following patches in the series will need to access fs_info at
btrfs_delete_ref_head(), so pass a fs_info argument to it.

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>
fs/btrfs/delayed-ref.c
fs/btrfs/delayed-ref.h
fs/btrfs/extent-tree.c

index 60a9e538d9195d1224060716bbc7129910990e48..ad067c7780db7677950f080946fa3421e33206e4 100644 (file)
@@ -624,7 +624,8 @@ void btrfs_unselect_ref_head(struct btrfs_delayed_ref_root *delayed_refs,
        btrfs_delayed_ref_unlock(head);
 }
 
-void btrfs_delete_ref_head(struct btrfs_delayed_ref_root *delayed_refs,
+void btrfs_delete_ref_head(const struct btrfs_fs_info *fs_info,
+                          struct btrfs_delayed_ref_root *delayed_refs,
                           struct btrfs_delayed_ref_head *head)
 {
        lockdep_assert_held(&delayed_refs->lock);
@@ -1294,7 +1295,7 @@ void btrfs_destroy_delayed_refs(struct btrfs_transaction *trans)
                if (head->must_insert_reserved)
                        pin_bytes = true;
                btrfs_free_delayed_extent_op(head->extent_op);
-               btrfs_delete_ref_head(delayed_refs, head);
+               btrfs_delete_ref_head(fs_info, delayed_refs, head);
                spin_unlock(&head->lock);
                spin_unlock(&delayed_refs->lock);
                mutex_unlock(&head->mutex);
index b5894aa01d5e863de8819af0574c37ec32c89530..b81d28ba0716a033f5968725a8c81baa666b7796 100644 (file)
@@ -374,7 +374,8 @@ static inline void btrfs_delayed_ref_unlock(struct btrfs_delayed_ref_head *head)
 {
        mutex_unlock(&head->mutex);
 }
-void btrfs_delete_ref_head(struct btrfs_delayed_ref_root *delayed_refs,
+void btrfs_delete_ref_head(const struct btrfs_fs_info *fs_info,
+                          struct btrfs_delayed_ref_root *delayed_refs,
                           struct btrfs_delayed_ref_head *head);
 
 struct btrfs_delayed_ref_head *btrfs_select_ref_head(
index 50dc0f1dde244c6b34cae186b63eb131bd7f1a66..ba87b15efec9f7e4a11f8da61baede013411e29d 100644 (file)
@@ -1920,7 +1920,7 @@ static int cleanup_ref_head(struct btrfs_trans_handle *trans,
                spin_unlock(&delayed_refs->lock);
                return 1;
        }
-       btrfs_delete_ref_head(delayed_refs, head);
+       btrfs_delete_ref_head(fs_info, delayed_refs, head);
        spin_unlock(&head->lock);
        spin_unlock(&delayed_refs->lock);
 
@@ -3353,13 +3353,14 @@ out:
 static noinline int check_ref_cleanup(struct btrfs_trans_handle *trans,
                                      u64 bytenr)
 {
+       struct btrfs_fs_info *fs_info = trans->fs_info;
        struct btrfs_delayed_ref_head *head;
        struct btrfs_delayed_ref_root *delayed_refs;
        int ret = 0;
 
        delayed_refs = &trans->transaction->delayed_refs;
        spin_lock(&delayed_refs->lock);
-       head = btrfs_find_delayed_ref_head(trans->fs_info, delayed_refs, bytenr);
+       head = btrfs_find_delayed_ref_head(fs_info, delayed_refs, bytenr);
        if (!head)
                goto out_delayed_unlock;
 
@@ -3377,7 +3378,7 @@ static noinline int check_ref_cleanup(struct btrfs_trans_handle *trans,
        if (!mutex_trylock(&head->mutex))
                goto out;
 
-       btrfs_delete_ref_head(delayed_refs, head);
+       btrfs_delete_ref_head(fs_info, delayed_refs, head);
        head->processing = false;
 
        spin_unlock(&head->lock);
@@ -3387,7 +3388,7 @@ static noinline int check_ref_cleanup(struct btrfs_trans_handle *trans,
        if (head->must_insert_reserved)
                ret = 1;
 
-       btrfs_cleanup_ref_head_accounting(trans->fs_info, delayed_refs, head);
+       btrfs_cleanup_ref_head_accounting(fs_info, delayed_refs, head);
        mutex_unlock(&head->mutex);
        btrfs_put_delayed_ref_head(head);
        return ret;