]> git.baikalelectronics.ru Git - kernel.git/commitdiff
btrfs: simplify error handling at btrfs_del_root_ref()
authorFilipe Manana <fdmanana@suse.com>
Mon, 22 Aug 2022 14:47:10 +0000 (15:47 +0100)
committerDavid Sterba <dsterba@suse.com>
Mon, 26 Sep 2022 10:27:58 +0000 (12:27 +0200)
At btrfs_del_root_ref() we are using two return variables, named 'ret'
and 'err'. This makes it harder to follow and easier to return the wrong
value in case an error happens - the previous patch in the series, which
has the subject "btrfs: fix silent failure when deleting root
reference", fixed a bug due to confusion created by these two variables.

So change the function to use a single variable for tracking the return
value of the function, using only 'ret', which is consistent with most
of the codebase.

Reviewed-by: Qu Wenruo <wqu@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/root-tree.c

index d647cb2938c0184be095a175942814952a86aa17..e1f599d7a9164b7973515afc9de35a9df524040c 100644 (file)
@@ -337,7 +337,6 @@ int btrfs_del_root_ref(struct btrfs_trans_handle *trans, u64 root_id,
        struct extent_buffer *leaf;
        struct btrfs_key key;
        unsigned long ptr;
-       int err = 0;
        int ret;
 
        path = btrfs_alloc_path();
@@ -350,7 +349,6 @@ int btrfs_del_root_ref(struct btrfs_trans_handle *trans, u64 root_id,
 again:
        ret = btrfs_search_slot(trans, tree_root, &key, path, -1, 1);
        if (ret < 0) {
-               err = ret;
                goto out;
        } else if (ret == 0) {
                leaf = path->nodes[0];
@@ -360,18 +358,18 @@ again:
                if ((btrfs_root_ref_dirid(leaf, ref) != dirid) ||
                    (btrfs_root_ref_name_len(leaf, ref) != name_len) ||
                    memcmp_extent_buffer(leaf, name, ptr, name_len)) {
-                       err = -ENOENT;
+                       ret = -ENOENT;
                        goto out;
                }
                *sequence = btrfs_root_ref_sequence(leaf, ref);
 
                ret = btrfs_del_item(trans, tree_root, path);
-               if (ret) {
-                       err = ret;
+               if (ret)
                        goto out;
-               }
-       } else
-               err = -ENOENT;
+       } else {
+               ret = -ENOENT;
+               goto out;
+       }
 
        if (key.type == BTRFS_ROOT_BACKREF_KEY) {
                btrfs_release_path(path);
@@ -383,7 +381,7 @@ again:
 
 out:
        btrfs_free_path(path);
-       return err;
+       return ret;
 }
 
 /*