summaryrefslogtreecommitdiff
path: root/fs/kernfs
diff options
context:
space:
mode:
authorQu Wenruo <wqu@suse.com>2022-04-20 11:08:28 +0300
committerDavid Sterba <dsterba@suse.com>2022-05-16 18:03:16 +0300
commit719fae8920e4f42643ea306b95addb40bec87a25 (patch)
treeed6dc04f9c54ee6f283be23dba4e5b9963ad9194 /fs/kernfs
parentf04fbcc64e4be16185151f9fca44ea1b3d074bd0 (diff)
downloadlinux-719fae8920e4f42643ea306b95addb40bec87a25.tar.xz
btrfs: use ilog2() to replace if () branches for btrfs_bg_flags_to_raid_index()
In function btrfs_bg_flags_to_raid_index(), we use quite some if () to convert the BTRFS_BLOCK_GROUP_* bits to a index number. But the truth is, there is really no such need for so many branches at all. Since all BTRFS_BLOCK_GROUP_* flags are just one single bit set inside BTRFS_BLOCK_GROUP_PROFILES_MASK, we can easily use ilog2() to calculate their values. This calculation has an anchor point, the lowest PROFILE bit, which is RAID0. Even it's fixed on-disk format and should never change, here I added extra compile time checks to make it super safe: 1. Make sure RAID0 is always the lowest bit in PROFILE_MASK This is done by finding the first (least significant) bit set of RAID0 and PROFILE_MASK & ~RAID0. 2. Make sure RAID0 bit set beyond the highest bit of TYPE_MASK Signed-off-by: Qu Wenruo <wqu@suse.com> Reviewed-by: David Sterba <dsterba@suse.com> Signed-off-by: David Sterba <dsterba@suse.com>
Diffstat (limited to 'fs/kernfs')
0 files changed, 0 insertions, 0 deletions