Commit 22b6331d authored by David Sterba's avatar David Sterba

btrfs: store precalculated csum_size in fs_info

In many places we need the checksum size and it is inefficient to read
it from the raw superblock. Store the value into fs_info, actual use
will be in followup patches.  The size is u32 as it allows to generate
better assembly than with u16.
Reviewed-by: default avatarJohannes Thumshirn <johannes.thumshirn@wdc.com>
Signed-off-by: default avatarDavid Sterba <dsterba@suse.com>
parent 265fdfa6
...@@ -937,6 +937,7 @@ struct btrfs_fs_info { ...@@ -937,6 +937,7 @@ struct btrfs_fs_info {
u32 sectorsize; u32 sectorsize;
/* ilog2 of sectorsize, use to avoid 64bit division */ /* ilog2 of sectorsize, use to avoid 64bit division */
u32 sectorsize_bits; u32 sectorsize_bits;
u32 csum_size;
u32 stripesize; u32 stripesize;
/* Block groups and devices containing active swapfiles. */ /* Block groups and devices containing active swapfiles. */
......
...@@ -3080,6 +3080,7 @@ int __cold open_ctree(struct super_block *sb, struct btrfs_fs_devices *fs_device ...@@ -3080,6 +3080,7 @@ int __cold open_ctree(struct super_block *sb, struct btrfs_fs_devices *fs_device
fs_info->nodesize = nodesize; fs_info->nodesize = nodesize;
fs_info->sectorsize = sectorsize; fs_info->sectorsize = sectorsize;
fs_info->sectorsize_bits = ilog2(sectorsize); fs_info->sectorsize_bits = ilog2(sectorsize);
fs_info->csum_size = btrfs_super_csum_size(disk_super);
fs_info->stripesize = stripesize; fs_info->stripesize = stripesize;
/* /*
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment