mirror of
https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
synced 2026-05-13 14:09:38 -04:00
btrfs: always use delayed_refs local variable at btrfs_qgroup_trace_extent()
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>
This commit is contained in:
committed by
David Sterba
parent
c5e2680224
commit
db58e152a2
@@ -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;
|
||||
|
||||
|
||||
Reference in New Issue
Block a user