diff options
author | David Sterba <dsterba@suse.com> | 2020-07-02 11:10:18 +0200 |
---|---|---|
committer | David Sterba <dsterba@suse.com> | 2020-12-08 15:53:58 +0100 |
commit | 22b6331d961712ac2735423e5a6c04e9d0fd7897 (patch) | |
tree | fa75be6649cd24450abcd3d9367a15bb0560e01d /fs | |
parent | 265fdfa6ce0a79df3b880bbf39d9a00a0435687f (diff) | |
download | lwn-22b6331d961712ac2735423e5a6c04e9d0fd7897.tar.gz lwn-22b6331d961712ac2735423e5a6c04e9d0fd7897.zip |
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: Johannes Thumshirn <johannes.thumshirn@wdc.com>
Signed-off-by: David Sterba <dsterba@suse.com>
Diffstat (limited to 'fs')
-rw-r--r-- | fs/btrfs/ctree.h | 1 | ||||
-rw-r--r-- | fs/btrfs/disk-io.c | 1 |
2 files changed, 2 insertions, 0 deletions
diff --git a/fs/btrfs/ctree.h b/fs/btrfs/ctree.h index b94b4fe0fa96..3d06596b8746 100644 --- a/fs/btrfs/ctree.h +++ b/fs/btrfs/ctree.h @@ -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. */ diff --git a/fs/btrfs/disk-io.c b/fs/btrfs/disk-io.c index 25889a2362e2..475bd197c482 100644 --- a/fs/btrfs/disk-io.c +++ b/fs/btrfs/disk-io.c @@ -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; /* |