]> www.infradead.org Git - users/dwmw2/linux.git/commitdiff
btrfs: always use delayed_refs local variable at btrfs_qgroup_trace_extent()
authorFilipe Manana <fdmanana@suse.com>
Tue, 24 Sep 2024 16:43:56 +0000 (17:43 +0100)
committerDavid Sterba <dsterba@suse.com>
Mon, 11 Nov 2024 13:34:13 +0000 (14:34 +0100)
Instead of dereferencing the delayed refs from the transaction multiple
times, store it early in the local variable and then always use the
variable.

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/qgroup.c

index 316a12f8b51d16b9f495ced0bad546d357ce1c33..f7b05c7ee4284df681cd1818c1e3fc61ed50fea6 100644 (file)
@@ -2140,7 +2140,7 @@ int btrfs_qgroup_trace_extent(struct btrfs_trans_handle *trans, u64 bytenr,
 {
        struct btrfs_fs_info *fs_info = trans->fs_info;
        struct btrfs_qgroup_extent_record *record;
-       struct btrfs_delayed_ref_root *delayed_refs;
+       struct btrfs_delayed_ref_root *delayed_refs = &trans->transaction->delayed_refs;
        const unsigned long index = (bytenr >> fs_info->sectorsize_bits);
        int ret;
 
@@ -2150,12 +2150,11 @@ int btrfs_qgroup_trace_extent(struct btrfs_trans_handle *trans, u64 bytenr,
        if (!record)
                return -ENOMEM;
 
-       if (xa_reserve(&trans->transaction->delayed_refs.dirty_extents, index, GFP_NOFS)) {
+       if (xa_reserve(&delayed_refs->dirty_extents, index, GFP_NOFS)) {
                kfree(record);
                return -ENOMEM;
        }
 
-       delayed_refs = &trans->transaction->delayed_refs;
        record->num_bytes = num_bytes;
        record->old_roots = NULL;