diff options
author | Naohiro Aota <naohiro.aota@wdc.com> | 2022-05-04 00:10:05 +0300 |
---|---|---|
committer | David Sterba <dsterba@suse.com> | 2022-05-05 22:05:56 +0300 |
commit | ceb4f60830a7cd38ff47b7dd54e9e06ddbaf413c (patch) | |
tree | 720f55b0ea77738de91ea022638fcc792ef5062e /fs/btrfs/tree-log.c | |
parent | 549577127afeb759c29cdeeff1bdccd86e6c0dbf (diff) | |
download | linux-ceb4f60830a7cd38ff47b7dd54e9e06ddbaf413c.tar.xz |
btrfs: zoned: activate block group properly on unlimited active zone device
btrfs_zone_activate() checks if it activated all the underlying zones in
the loop. However, that check never hit on an unlimited activate zone
device (max_active_zones == 0).
Fortunately, it still works without ENOSPC because btrfs_zone_activate()
returns true in the end, even if block_group->zone_is_active == 0. But, it
is confusing to have non zone_is_active block group still usable for
allocation. Also, we are wasting CPU time to iterate the loop every time
btrfs_zone_activate() is called for the blog groups.
Since error case in the loop is handled by out_unlock, we can just set
zone_is_active and do the list stuff after the loop.
Fixes: f9a912a3c45f ("btrfs: zoned: make zone activation multi stripe capable")
Reviewed-by: Johannes Thumshirn <johannes.thumshirn@wdc.com>
Signed-off-by: Naohiro Aota <naohiro.aota@wdc.com>
Signed-off-by: David Sterba <dsterba@suse.com>
Diffstat (limited to 'fs/btrfs/tree-log.c')
0 files changed, 0 insertions, 0 deletions