]> git.ipfire.org Git - thirdparty/kernel/stable.git/commitdiff
btrfs: use level argument in log tree walk callback replay_one_buffer()
authorFilipe Manana <fdmanana@suse.com>
Thu, 28 Aug 2025 16:46:18 +0000 (17:46 +0100)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Sun, 2 Nov 2025 13:15:21 +0000 (22:15 +0900)
[ Upstream commit 6cb7f0b8c9b0d6a35682335fea88bd26f089306f ]

We already have the extent buffer's level in an argument, there's no need
to first ensure the extent buffer's data is loaded (by calling
btrfs_read_extent_buffer()) and then call btrfs_header_level() to check
the level. So use the level argument and do the check before calling
btrfs_read_extent_buffer().

Signed-off-by: Filipe Manana <fdmanana@suse.com>
Reviewed-by: David Sterba <dsterba@suse.com>
Signed-off-by: David Sterba <dsterba@suse.com>
Signed-off-by: Sasha Levin <sashal@kernel.org>
fs/btrfs/tree-log.c

index 63b14005f5066fc5e257fef1c58f692594441f51..b43a7c0c7cb7a8297b40ee7620e4ecd3fd65b467 100644 (file)
@@ -2443,15 +2443,13 @@ static int replay_one_buffer(struct btrfs_root *log, struct extent_buffer *eb,
        int i;
        int ret;
 
+       if (level != 0)
+               return 0;
+
        ret = btrfs_read_extent_buffer(eb, &check);
        if (ret)
                return ret;
 
-       level = btrfs_header_level(eb);
-
-       if (level != 0)
-               return 0;
-
        path = btrfs_alloc_path();
        if (!path)
                return -ENOMEM;