diff options
author | Josef Bacik <josef@toxicpanda.com> | 2022-07-15 15:45:22 -0400 |
---|---|---|
committer | David Sterba <dsterba@suse.com> | 2022-09-26 12:27:54 +0200 |
commit | 9d4b0a129a0d081821f21edccad154f8e2a1b747 (patch) | |
tree | 57df28bc1d9da0bcfb834002efa489eb6167d8d7 /fs/btrfs/space-info.c | |
parent | 2f12741f81af638dfb682dc2f24e6cbb67a37a2e (diff) | |
download | linux-9d4b0a129a0d081821f21edccad154f8e2a1b747.tar.gz linux-9d4b0a129a0d081821f21edccad154f8e2a1b747.tar.bz2 linux-9d4b0a129a0d081821f21edccad154f8e2a1b747.zip |
btrfs: simplify arguments of btrfs_update_space_info and rename
This function has grown a bunch of new arguments, and it just boils down
to passing in all the block group fields as arguments. Simplify this by
passing in the block group itself and updating the space_info fields
based on the block group fields directly.
Signed-off-by: Josef Bacik <josef@toxicpanda.com>
Reviewed-by: David Sterba <dsterba@suse.com>
Signed-off-by: David Sterba <dsterba@suse.com>
Diffstat (limited to 'fs/btrfs/space-info.c')
-rw-r--r-- | fs/btrfs/space-info.c | 29 |
1 files changed, 14 insertions, 15 deletions
diff --git a/fs/btrfs/space-info.c b/fs/btrfs/space-info.c index 435559ba94fa..6974bbef0fea 100644 --- a/fs/btrfs/space-info.c +++ b/fs/btrfs/space-info.c @@ -293,28 +293,27 @@ out: return ret; } -void btrfs_update_space_info(struct btrfs_fs_info *info, u64 flags, - u64 total_bytes, u64 bytes_used, - u64 bytes_readonly, u64 bytes_zone_unusable, - bool active, struct btrfs_space_info **space_info) +void btrfs_add_bg_to_space_info(struct btrfs_fs_info *info, + struct btrfs_block_group *block_group, + struct btrfs_space_info **space_info) { struct btrfs_space_info *found; int factor; - factor = btrfs_bg_type_to_factor(flags); + factor = btrfs_bg_type_to_factor(block_group->flags); - found = btrfs_find_space_info(info, flags); + found = btrfs_find_space_info(info, block_group->flags); ASSERT(found); spin_lock(&found->lock); - found->total_bytes += total_bytes; - if (active) - found->active_total_bytes += total_bytes; - found->disk_total += total_bytes * factor; - found->bytes_used += bytes_used; - found->disk_used += bytes_used * factor; - found->bytes_readonly += bytes_readonly; - found->bytes_zone_unusable += bytes_zone_unusable; - if (total_bytes > 0) + found->total_bytes += block_group->length; + if (block_group->zone_is_active) + found->active_total_bytes += block_group->length; + found->disk_total += block_group->length * factor; + found->bytes_used += block_group->used; + found->disk_used += block_group->used * factor; + found->bytes_readonly += block_group->bytes_super; + found->bytes_zone_unusable += block_group->zone_unusable; + if (block_group->length > 0) found->full = 0; btrfs_try_granting_tickets(info, found); spin_unlock(&found->lock); |