diff options
| author | Filipe Manana <fdmanana@suse.com> | 2026-04-15 13:31:05 +0100 |
|---|---|---|
| committer | David Sterba <dsterba@suse.com> | 2026-06-08 15:53:29 +0200 |
| commit | 5e4b57f77ca3e39bde9681e4d79ea564bbd4fece (patch) | |
| tree | 1f57dd201f71b5019eb4142ff20ce8efa877d30a | |
| parent | 66fd877b13c7e7285ec607e4433efec3c2b2dd6a (diff) | |
| download | linux-5e4b57f77ca3e39bde9681e4d79ea564bbd4fece.tar.gz linux-5e4b57f77ca3e39bde9681e4d79ea564bbd4fece.zip | |
btrfs: remove start field from struct btrfs_free_space_ctl
There's no need for the start field, we can take it from the block group.
This reduces the structure size from 152 bytes down to 144 bytes, so on
a 4K page system we can now fit 28 structures instead of 26.
Signed-off-by: Filipe Manana <fdmanana@suse.com>
Reviewed-by: David Sterba <dsterba@suse.com>
Signed-off-by: David Sterba <dsterba@suse.com>
| -rw-r--r-- | fs/btrfs/free-space-cache.c | 9 | ||||
| -rw-r--r-- | fs/btrfs/free-space-cache.h | 1 |
2 files changed, 4 insertions, 6 deletions
diff --git a/fs/btrfs/free-space-cache.c b/fs/btrfs/free-space-cache.c index 07567fd45634..af557a581e2c 100644 --- a/fs/btrfs/free-space-cache.c +++ b/fs/btrfs/free-space-cache.c @@ -1568,10 +1568,10 @@ static inline u64 offset_to_bitmap(struct btrfs_free_space_ctl *ctl, u64 bytes_per_bitmap; bytes_per_bitmap = BITS_PER_BITMAP * ctl->unit; - bitmap_start = offset - ctl->start; + bitmap_start = offset - ctl->block_group->start; bitmap_start = div64_u64(bitmap_start, bytes_per_bitmap); bitmap_start *= bytes_per_bitmap; - bitmap_start += ctl->start; + bitmap_start += ctl->block_group->start; return bitmap_start; } @@ -2050,9 +2050,9 @@ again: * to match our requested alignment */ if (*bytes >= align) { - tmp = entry->offset - ctl->start + align - 1; + tmp = entry->offset - ctl->block_group->start + align - 1; tmp = div64_u64(tmp, align); - tmp = tmp * align + ctl->start; + tmp = tmp * align + ctl->block_group->start; align_off = tmp - entry->offset; } else { align_off = 0; @@ -2947,7 +2947,6 @@ void btrfs_init_free_space_ctl(struct btrfs_block_group *block_group, spin_lock_init(&ctl->tree_lock); ctl->unit = fs_info->sectorsize; - ctl->start = block_group->start; ctl->block_group = block_group; ctl->op = &free_space_op; ctl->free_space_bytes = RB_ROOT_CACHED; diff --git a/fs/btrfs/free-space-cache.h b/fs/btrfs/free-space-cache.h index 33fc3b245648..e75482fb2d69 100644 --- a/fs/btrfs/free-space-cache.h +++ b/fs/btrfs/free-space-cache.h @@ -82,7 +82,6 @@ struct btrfs_free_space_ctl { int free_extents; int total_bitmaps; int unit; - u64 start; s32 discardable_extents[BTRFS_STAT_NR_ENTRIES]; s64 discardable_bytes[BTRFS_STAT_NR_ENTRIES]; const struct btrfs_free_space_op *op; |
