summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorFilipe Manana <fdmanana@suse.com>2026-04-15 13:31:05 +0100
committerDavid Sterba <dsterba@suse.com>2026-06-08 15:53:29 +0200
commit5e4b57f77ca3e39bde9681e4d79ea564bbd4fece (patch)
tree1f57dd201f71b5019eb4142ff20ce8efa877d30a
parent66fd877b13c7e7285ec607e4433efec3c2b2dd6a (diff)
downloadlinux-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.c9
-rw-r--r--fs/btrfs/free-space-cache.h1
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;