mirror of
https://github.com/torvalds/linux.git
synced 2026-05-27 16:44:58 +02:00
btrfs: zoned: remove redundant space_info lock and variable in do_allocation_zoned()
In do_allocation_zoned(), the code acquires space_info->lock before block_group->lock. However, the critical section does not access or modify any members of the space_info structure. Thus, the lock is redundant as it provides no necessary synchronization here. This change simplifies the locking logic and aligns the function with other zoned paths, such as __btrfs_add_free_space_zoned(), which only rely on block_group->lock. Since the 'space_info' local variable is no longer used after removing the lock calls, it is also removed. Removing this unnecessary lock reduces contention on the global space_info lock, improving concurrency in the zoned allocation path. Reviewed-by: Boris Burkov <boris@bur.io> Reviewed-by: Johannes Thumshirn <johannes.thumshirn@wdc.com> Reviewed-by: Naohiro Aota <naohiro.aota@wdc.com> Signed-off-by: Jiasheng Jiang <jiashengjiangcool@gmail.com> Reviewed-by: David Sterba <dsterba@suse.com> Signed-off-by: David Sterba <dsterba@suse.com>
This commit is contained in:
parent
6141abb7f1
commit
08ef56661f
|
|
@ -4013,9 +4013,8 @@ static int do_allocation_clustered(struct btrfs_block_group *block_group,
|
|||
* Lock nesting
|
||||
* ============
|
||||
*
|
||||
* space_info::lock
|
||||
* block_group::lock
|
||||
* fs_info::treelog_bg_lock
|
||||
* block_group::lock
|
||||
* fs_info::treelog_bg_lock
|
||||
*/
|
||||
|
||||
/*
|
||||
|
|
@ -4028,7 +4027,6 @@ static int do_allocation_zoned(struct btrfs_block_group *block_group,
|
|||
struct btrfs_block_group **bg_ret)
|
||||
{
|
||||
struct btrfs_fs_info *fs_info = block_group->fs_info;
|
||||
struct btrfs_space_info *space_info = block_group->space_info;
|
||||
struct btrfs_free_space_ctl *ctl = block_group->free_space_ctl;
|
||||
u64 start = block_group->start;
|
||||
u64 num_bytes = ffe_ctl->num_bytes;
|
||||
|
|
@ -4089,7 +4087,6 @@ static int do_allocation_zoned(struct btrfs_block_group *block_group,
|
|||
*/
|
||||
}
|
||||
|
||||
spin_lock(&space_info->lock);
|
||||
spin_lock(&block_group->lock);
|
||||
spin_lock(&fs_info->treelog_bg_lock);
|
||||
spin_lock(&fs_info->relocation_bg_lock);
|
||||
|
|
@ -4191,7 +4188,6 @@ static int do_allocation_zoned(struct btrfs_block_group *block_group,
|
|||
spin_unlock(&fs_info->relocation_bg_lock);
|
||||
spin_unlock(&fs_info->treelog_bg_lock);
|
||||
spin_unlock(&block_group->lock);
|
||||
spin_unlock(&space_info->lock);
|
||||
return ret;
|
||||
}
|
||||
|
||||
|
|
|
|||
Loading…
Reference in New Issue
Block a user