]> git.baikalelectronics.ru Git - kernel.git/commitdiff
btrfs: remove search start argument from first_logical_byte()
authorFilipe Manana <fdmanana@suse.com>
Wed, 13 Apr 2022 15:20:39 +0000 (16:20 +0100)
committerDavid Sterba <dsterba@suse.com>
Mon, 16 May 2022 15:03:13 +0000 (17:03 +0200)
The search start argument passed to first_logical_byte() is always 0, as
we always want to get the logical start address of the block group with
the lowest logical start address. So remove it, as not only it is not
necessary, it also makes the following patches that change the lock that
protects the red black tree of block groups from a spin lock to a
read/write lock.

Reviewed-by: Nikolay Borisov <nborisov@suse.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/extent-tree.c

index fc5b9be06ec8cf78b9894407bc881f2842209631..2a718727541c52bc860f7376f99308cb0a1a47a4 100644 (file)
@@ -2492,7 +2492,7 @@ static u64 get_alloc_profile_by_root(struct btrfs_root *root, int data)
        return ret;
 }
 
-static u64 first_logical_byte(struct btrfs_fs_info *fs_info, u64 search_start)
+static u64 first_logical_byte(struct btrfs_fs_info *fs_info)
 {
        struct btrfs_block_group *cache;
        u64 bytenr;
@@ -2504,7 +2504,8 @@ static u64 first_logical_byte(struct btrfs_fs_info *fs_info, u64 search_start)
        if (bytenr < (u64)-1)
                return bytenr;
 
-       cache = btrfs_lookup_first_block_group(fs_info, search_start);
+       /* Get the block group with the lowest logical start address. */
+       cache = btrfs_lookup_first_block_group(fs_info, 0);
        if (!cache)
                return 0;
 
@@ -4267,7 +4268,7 @@ static noinline int find_free_extent(struct btrfs_root *root,
                return ret;
 
        ffe_ctl->search_start = max(ffe_ctl->search_start,
-                                   first_logical_byte(fs_info, 0));
+                                   first_logical_byte(fs_info));
        ffe_ctl->search_start = max(ffe_ctl->search_start, ffe_ctl->hint_byte);
        if (ffe_ctl->search_start == ffe_ctl->hint_byte) {
                block_group = btrfs_lookup_block_group(fs_info,