]> git.ipfire.org Git - thirdparty/linux.git/commitdiff
btrfs: move csum related functions from ctree.c into fs.c
authorFilipe Manana <fdmanana@suse.com>
Mon, 16 Dec 2024 11:38:30 +0000 (11:38 +0000)
committerDavid Sterba <dsterba@suse.com>
Mon, 13 Jan 2025 13:53:17 +0000 (14:53 +0100)
The ctree module is about the implementation of the btree data structure
and not a place holder for generic filesystem things like the csum
algorithm details. Move the functions related to the csum algorithm
details away from ctree.c and into fs.c, which is a far better place for
them. Also fix missing punctuation in comments and change one multiline
comment to a single line comment since everything fits in under 80
characters.

For some reason this also slightly reduces the module's size.

Before this change:

  $ size fs/btrfs/btrfs.ko
     text    data     bss     dec     hex filename
  1782126  161045   16920 1960091  1de89b fs/btrfs/btrfs.ko

After this change:

  $ size fs/btrfs/btrfs.ko
     text    data     bss     dec     hex filename
  1782094  161045   16920 1960059  1de87b fs/btrfs/btrfs.ko

Reviewed-by: Qu Wenruo <wqu@suse.com>
Reviewed-by: Johannes Thumshirn <johannes.thumshirn@wdc.com>
Signed-off-by: Filipe Manana <fdmanana@suse.com>
Reviewed-by: David Sterba <dsterba@suse.com>
Signed-off-by: David Sterba <dsterba@suse.com>
fs/btrfs/ctree.c
fs/btrfs/ctree.h
fs/btrfs/fs.c
fs/btrfs/fs.h

index 99a58ede387e05a909540ef9ccbaed92cc25c0b2..c93f52a30a16028470594de1d1256dbec5c7899c 100644 (file)
@@ -37,19 +37,6 @@ static int push_node_left(struct btrfs_trans_handle *trans,
 static int balance_node_right(struct btrfs_trans_handle *trans,
                              struct extent_buffer *dst_buf,
                              struct extent_buffer *src_buf);
-
-static const struct btrfs_csums {
-       u16             size;
-       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" },
-       [BTRFS_CSUM_TYPE_SHA256] = { .size = 32, .name = "sha256" },
-       [BTRFS_CSUM_TYPE_BLAKE2] = { .size = 32, .name = "blake2b",
-                                    .driver = "blake2b-256" },
-};
-
 /*
  * The leaf data grows from end-to-front in the node.  this returns the address
  * of the start of the last item, which is the stop of the leaf data stack.
@@ -148,44 +135,6 @@ static inline void copy_leaf_items(const struct extent_buffer *dst,
                              nr_items * sizeof(struct btrfs_item));
 }
 
-/* This exists for btrfs-progs usages. */
-u16 btrfs_csum_type_size(u16 type)
-{
-       return btrfs_csums[type].size;
-}
-
-int btrfs_super_csum_size(const struct btrfs_super_block *s)
-{
-       u16 t = btrfs_super_csum_type(s);
-       /*
-        * csum type is validated at mount time
-        */
-       return btrfs_csum_type_size(t);
-}
-
-const char *btrfs_super_csum_name(u16 csum_type)
-{
-       /* csum type is validated at mount time */
-       return btrfs_csums[csum_type].name;
-}
-
-/*
- * Return driver name if defined, otherwise the name that's also a valid driver
- * name
- */
-const char *btrfs_super_csum_driver(u16 csum_type)
-{
-       /* csum type is validated at mount time */
-       return btrfs_csums[csum_type].driver[0] ?
-               btrfs_csums[csum_type].driver :
-               btrfs_csums[csum_type].name;
-}
-
-size_t __attribute_const__ btrfs_get_num_csums(void)
-{
-       return ARRAY_SIZE(btrfs_csums);
-}
-
 struct btrfs_path *btrfs_alloc_path(void)
 {
        might_sleep();
index 2c341956a01ce65f4b14e7ab5409b92f782fcdb3..a1bab0b3f1930867288f51f761971be7915a2131 100644 (file)
@@ -756,12 +756,6 @@ static inline bool btrfs_is_data_reloc_root(const struct btrfs_root *root)
        return root->root_key.objectid == BTRFS_DATA_RELOC_TREE_OBJECTID;
 }
 
-u16 btrfs_csum_type_size(u16 type);
-int btrfs_super_csum_size(const struct btrfs_super_block *s);
-const char *btrfs_super_csum_name(u16 csum_type);
-const char *btrfs_super_csum_driver(u16 csum_type);
-size_t __attribute_const__ btrfs_get_num_csums(void);
-
 /*
  * We use folio flag owner_2 to indicate there is an ordered extent with
  * unfinished IO.
index 31c1648bc0b4692243a2750f5b55ccc0a4e1591e..3756a3b9c9da864d5016f06bd98bf2e53b861a96 100644 (file)
@@ -5,6 +5,55 @@
 #include "fs.h"
 #include "accessors.h"
 
+static const struct btrfs_csums {
+       u16             size;
+       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" },
+       [BTRFS_CSUM_TYPE_SHA256] = { .size = 32, .name = "sha256" },
+       [BTRFS_CSUM_TYPE_BLAKE2] = { .size = 32, .name = "blake2b",
+                                    .driver = "blake2b-256" },
+};
+
+/* This exists for btrfs-progs usages. */
+u16 btrfs_csum_type_size(u16 type)
+{
+       return btrfs_csums[type].size;
+}
+
+int btrfs_super_csum_size(const struct btrfs_super_block *s)
+{
+       u16 t = btrfs_super_csum_type(s);
+
+       /* csum type is validated at mount time. */
+       return btrfs_csum_type_size(t);
+}
+
+const char *btrfs_super_csum_name(u16 csum_type)
+{
+       /* csum type is validated at mount time. */
+       return btrfs_csums[csum_type].name;
+}
+
+/*
+ * Return driver name if defined, otherwise the name that's also a valid driver
+ * name.
+ */
+const char *btrfs_super_csum_driver(u16 csum_type)
+{
+       /* csum type is validated at mount time */
+       return btrfs_csums[csum_type].driver[0] ?
+               btrfs_csums[csum_type].driver :
+               btrfs_csums[csum_type].name;
+}
+
+size_t __attribute_const__ btrfs_get_num_csums(void)
+{
+       return ARRAY_SIZE(btrfs_csums);
+}
+
 void __btrfs_set_fs_incompat(struct btrfs_fs_info *fs_info, u64 flag,
                             const char *name)
 {
index 79a1a3d6f04d184d84f75a250fd738688de07adc..b05f2af97140a30562db4fe7adf0c402232df0fd 100644 (file)
@@ -982,6 +982,12 @@ void btrfs_exclop_balance(struct btrfs_fs_info *fs_info,
 
 int btrfs_check_ioctl_vol_args_path(const struct btrfs_ioctl_vol_args *vol_args);
 
+u16 btrfs_csum_type_size(u16 type);
+int btrfs_super_csum_size(const struct btrfs_super_block *s);
+const char *btrfs_super_csum_name(u16 csum_type);
+const char *btrfs_super_csum_driver(u16 csum_type);
+size_t __attribute_const__ btrfs_get_num_csums(void);
+
 /* Compatibility and incompatibility defines */
 void __btrfs_set_fs_incompat(struct btrfs_fs_info *fs_info, u64 flag,
                             const char *name);