]> git.baikalelectronics.ru Git - kernel.git/commitdiff
btrfs: unify the error handling of btrfs_read_buffer()
authorQu Wenruo <wqu@suse.com>
Tue, 22 Feb 2022 07:41:20 +0000 (15:41 +0800)
committerDavid Sterba <dsterba@suse.com>
Mon, 14 Mar 2022 12:13:53 +0000 (13:13 +0100)
There is one oddball error handling of btrfs_read_buffer():

ret = btrfs_read_buffer(tmp, gen, parent_level - 1, &first_key);
if (!ret) {
*eb_ret = tmp;
return 0;
}
free_extent_buffer(tmp);
btrfs_release_path(p);
return -EIO;

While all other call sites check the error first.  Unify the behavior.

Signed-off-by: Qu Wenruo <wqu@suse.com>
Reviewed-by: David Sterba <dsterba@suse.com>
Signed-off-by: David Sterba <dsterba@suse.com>
fs/btrfs/ctree.c

index 9b2d9cd4167632c71da879ae4e7f82a752dcd318..0eecf98d0abb85f226451a6b36bd6802806b6398 100644 (file)
@@ -1438,13 +1438,13 @@ read_block_for_search(struct btrfs_root *root, struct btrfs_path *p,
 
                /* now we're allowed to do a blocking uptodate check */
                ret = btrfs_read_buffer(tmp, gen, parent_level - 1, &first_key);
-               if (!ret) {
-                       *eb_ret = tmp;
-                       return 0;
+               if (ret) {
+                       free_extent_buffer(tmp);
+                       btrfs_release_path(p);
+                       return -EIO;
                }
-               free_extent_buffer(tmp);
-               btrfs_release_path(p);
-               return -EIO;
+               *eb_ret = tmp;
+               return 0;
        }
 
        /*