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

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
Loading
Loading
Loading
Loading
+1 −0
Original line number Diff line number Diff line
@@ -937,6 +937,7 @@ struct btrfs_fs_info {
	u32 sectorsize;
	/* ilog2 of sectorsize, use to avoid 64bit division */
	u32 sectorsize_bits;
	u32 csum_size;
	u32 stripesize;

	/* Block groups and devices containing active swapfiles. */
+1 −0
Original line number Diff line number Diff line
@@ -3080,6 +3080,7 @@ int __cold open_ctree(struct super_block *sb, struct btrfs_fs_devices *fs_device
	fs_info->nodesize = nodesize;
	fs_info->sectorsize = sectorsize;
	fs_info->sectorsize_bits = ilog2(sectorsize);
	fs_info->csum_size = btrfs_super_csum_size(disk_super);
	fs_info->stripesize = stripesize;

	/*