btrfs: don't pass nodesize to __alloc_extent_buffer()
authorDavid Sterba <dsterba@suse.com>
Wed, 26 Feb 2025 08:22:25 +0000 (09:22 +0100)
committerDavid Sterba <dsterba@suse.com>
Tue, 18 Mar 2025 19:35:47 +0000 (20:35 +0100)
All callers pass a valid fs_info so we can read the nodesize from that
instead of passing it as parameter.

Reviewed-by: Johannes Thumshirn <johannes.thumshirn@wdc.com>
Signed-off-by: David Sterba <dsterba@suse.com>
fs/btrfs/extent_io.c
fs/btrfs/extent_io.h
fs/btrfs/tests/extent-io-tests.c

index 580bdb0379742f665c50b6f2b69f1e7126a6b416..5ef6dd0782fde73db59c2adbee52115a9d9516e4 100644 (file)
@@ -2646,15 +2646,14 @@ static inline void btrfs_release_extent_buffer(struct extent_buffer *eb)
        kmem_cache_free(extent_buffer_cache, eb);
 }
 
-static struct extent_buffer *
-__alloc_extent_buffer(struct btrfs_fs_info *fs_info, u64 start,
-                     unsigned long len)
+static struct extent_buffer *__alloc_extent_buffer(struct btrfs_fs_info *fs_info,
+                                                  u64 start)
 {
        struct extent_buffer *eb = NULL;
 
        eb = kmem_cache_zalloc(extent_buffer_cache, GFP_NOFS|__GFP_NOFAIL);
        eb->start = start;
-       eb->len = len;
+       eb->len = fs_info->nodesize;
        eb->fs_info = fs_info;
        init_rwsem(&eb->lock);
 
@@ -2663,7 +2662,7 @@ __alloc_extent_buffer(struct btrfs_fs_info *fs_info, u64 start,
        spin_lock_init(&eb->refs_lock);
        atomic_set(&eb->refs, 1);
 
-       ASSERT(len <= BTRFS_MAX_METADATA_BLOCKSIZE);
+       ASSERT(eb->len <= BTRFS_MAX_METADATA_BLOCKSIZE);
 
        return eb;
 }
@@ -2674,7 +2673,7 @@ struct extent_buffer *btrfs_clone_extent_buffer(const struct extent_buffer *src)
        int num_folios = num_extent_folios(src);
        int ret;
 
-       new = __alloc_extent_buffer(src->fs_info, src->start, src->len);
+       new = __alloc_extent_buffer(src->fs_info, src->start);
        if (new == NULL)
                return NULL;
 
@@ -2708,13 +2707,13 @@ struct extent_buffer *btrfs_clone_extent_buffer(const struct extent_buffer *src)
 }
 
 struct extent_buffer *__alloc_dummy_extent_buffer(struct btrfs_fs_info *fs_info,
-                                                 u64 start, unsigned long len)
+                                                 u64 start)
 {
        struct extent_buffer *eb;
        int num_folios = 0;
        int ret;
 
-       eb = __alloc_extent_buffer(fs_info, start, len);
+       eb = __alloc_extent_buffer(fs_info, start);
        if (!eb)
                return NULL;
 
@@ -2748,7 +2747,7 @@ err:
 struct extent_buffer *alloc_dummy_extent_buffer(struct btrfs_fs_info *fs_info,
                                                u64 start)
 {
-       return __alloc_dummy_extent_buffer(fs_info, start, fs_info->nodesize);
+       return __alloc_dummy_extent_buffer(fs_info, start);
 }
 
 static void check_buffer_tree_ref(struct extent_buffer *eb)
@@ -3025,7 +3024,6 @@ finish:
 struct extent_buffer *alloc_extent_buffer(struct btrfs_fs_info *fs_info,
                                          u64 start, u64 owner_root, int level)
 {
-       unsigned long len = fs_info->nodesize;
        int num_folios;
        int attached = 0;
        struct extent_buffer *eb;
@@ -3054,7 +3052,7 @@ struct extent_buffer *alloc_extent_buffer(struct btrfs_fs_info *fs_info,
        if (eb)
                return eb;
 
-       eb = __alloc_extent_buffer(fs_info, start, len);
+       eb = __alloc_extent_buffer(fs_info, start);
        if (!eb)
                return ERR_PTR(-ENOMEM);
 
index 6c5328bfabc22a40f47e40c66cd178ce56710020..3413a34585c8c4e28cb912b41979c93ce8682a17 100644 (file)
@@ -253,7 +253,7 @@ void clear_folio_extent_mapped(struct folio *folio);
 struct extent_buffer *alloc_extent_buffer(struct btrfs_fs_info *fs_info,
                                          u64 start, u64 owner_root, int level);
 struct extent_buffer *__alloc_dummy_extent_buffer(struct btrfs_fs_info *fs_info,
-                                                 u64 start, unsigned long len);
+                                                 u64 start);
 struct extent_buffer *alloc_dummy_extent_buffer(struct btrfs_fs_info *fs_info,
                                                u64 start);
 struct extent_buffer *btrfs_clone_extent_buffer(const struct extent_buffer *src);
index 0a2dbfaaf49e292baf8d92df33ae8d876a94556e..5847cbdc1e90aed62663f17de23ed4330fad277c 100644 (file)
@@ -525,7 +525,7 @@ static int test_eb_bitmaps(u32 sectorsize, u32 nodesize)
                goto out;
        }
 
-       eb = __alloc_dummy_extent_buffer(fs_info, 0, nodesize);
+       eb = __alloc_dummy_extent_buffer(fs_info, 0);
        if (!eb) {
                test_std_err(TEST_ALLOC_ROOT);
                ret = -ENOMEM;
@@ -542,7 +542,7 @@ static int test_eb_bitmaps(u32 sectorsize, u32 nodesize)
         * Test again for case where the tree block is sectorsize aligned but
         * not nodesize aligned.
         */
-       eb = __alloc_dummy_extent_buffer(fs_info, sectorsize, nodesize);
+       eb = __alloc_dummy_extent_buffer(fs_info, sectorsize);
        if (!eb) {
                test_std_err(TEST_ALLOC_ROOT);
                ret = -ENOMEM;
@@ -730,7 +730,7 @@ static int test_eb_mem_ops(u32 sectorsize, u32 nodesize)
                goto out;
        }
 
-       eb = __alloc_dummy_extent_buffer(fs_info, SZ_1M, nodesize);
+       eb = __alloc_dummy_extent_buffer(fs_info, SZ_1M);
        if (!eb) {
                test_std_err(TEST_ALLOC_EXTENT_BUFFER);
                ret = -ENOMEM;