]> git.baikalelectronics.ru Git - kernel.git/commit
btrfs: use precalculated sectorsize_bits from fs_info
authorDavid Sterba <dsterba@suse.com>
Wed, 1 Jul 2020 18:45:04 +0000 (20:45 +0200)
committerDavid Sterba <dsterba@suse.com>
Tue, 8 Dec 2020 14:53:57 +0000 (15:53 +0100)
commit4b2a3f39eeacbfffce8bdbb88acdb5a9904489a9
tree3632b276548fe4abb15b73d675bfcf2c27805b2c
parentbf2f9ea50e73c548d8adc28154d9373e3d901c25
btrfs: use precalculated sectorsize_bits from fs_info

We do a lot of calculations where we divide or multiply by sectorsize.
We also know and make sure that sectorsize is a power of two, so this
means all divisions can be turned to shifts and avoid eg. expensive
u64/u32 divisions.

The type is u32 as it's more register friendly on x86_64 compared to u8
and the resulting assembly is smaller (movzbl vs movl).

There's also superblock s_blocksize_bits but it's usually one more
pointer dereference farther than fs_info.

Reviewed-by: Johannes Thumshirn <johannes.thumshirn@wdc.com>
Signed-off-by: David Sterba <dsterba@suse.com>
fs/btrfs/ctree.h
fs/btrfs/disk-io.c
fs/btrfs/extent-tree.c
fs/btrfs/file-item.c
fs/btrfs/free-space-tree.c
fs/btrfs/ordered-data.c
fs/btrfs/scrub.c
fs/btrfs/tests/btrfs-tests.c