summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDavid Sterba <dsterba@suse.com>2020-02-27 21:00:45 +0100
committerDavid Sterba <dsterba@suse.com>2020-03-23 17:01:52 +0100
commit59a0fcdb489dae25416e93b9fc67cc97a6847f01 (patch)
treedaabc5a4e44065a648cf6efd97d43e5baf38106f
parent11c67b1a40b0a4a7c712103508a63267c7ecd4b8 (diff)
downloadlinux-rpi-59a0fcdb489dae25416e93b9fc67cc97a6847f01.tar.gz
linux-rpi-59a0fcdb489dae25416e93b9fc67cc97a6847f01.tar.bz2
linux-rpi-59a0fcdb489dae25416e93b9fc67cc97a6847f01.zip
btrfs: inline checksum name and driver definitions
There's an unnecessary indirection in the checksum definition table, pointer and the string itself. The strings are short and the overall size of one entry is now 24 bytes. Reviewed-by: Johannes Thumshirn <johannes.thumshirn@wdc.com> Reviewed-by: Qu Wenruo <wqu@suse.com> Signed-off-by: David Sterba <dsterba@suse.com>
-rw-r--r--fs/btrfs/ctree.c7
1 files changed, 4 insertions, 3 deletions
diff --git a/fs/btrfs/ctree.c b/fs/btrfs/ctree.c
index f948435e87df..bfedbbe2311f 100644
--- a/fs/btrfs/ctree.c
+++ b/fs/btrfs/ctree.c
@@ -31,8 +31,8 @@ static void del_ptr(struct btrfs_root *root, struct btrfs_path *path,
static const struct btrfs_csums {
u16 size;
- const char *name;
- const char *driver;
+ const char name[10];
+ const char driver[12];
} btrfs_csums[] = {
[BTRFS_CSUM_TYPE_CRC32] = { .size = 4, .name = "crc32c" },
[BTRFS_CSUM_TYPE_XXHASH] = { .size = 8, .name = "xxhash64" },
@@ -63,7 +63,8 @@ const char *btrfs_super_csum_name(u16 csum_type)
const char *btrfs_super_csum_driver(u16 csum_type)
{
/* csum type is validated at mount time */
- return btrfs_csums[csum_type].driver ?:
+ return btrfs_csums[csum_type].driver[0] ?
+ btrfs_csums[csum_type].driver :
btrfs_csums[csum_type].name;
}