btrfs: use a single variable for return value at run_delayed_extent_op()
authorFilipe Manana <fdmanana@suse.com>
Fri, 8 Sep 2023 17:20:30 +0000 (18:20 +0100)
committerDavid Sterba <dsterba@suse.com>
Thu, 12 Oct 2023 14:44:06 +0000 (16:44 +0200)
Instead of using a 'ret' and an 'err' variable at run_delayed_extent_op()
for tracking the return value, use a single one ('ret'). This simplifies
the code, makes it comply with most of the existing code and it's less
prone for logic errors as time has proven over and over in the btrfs code.

Reviewed-by: Josef Bacik <josef@toxicpanda.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 a96c793..dda4e38 100644 (file)
@@ -1602,7 +1602,6 @@ static int run_delayed_extent_op(struct btrfs_trans_handle *trans,
        struct extent_buffer *leaf;
        u32 item_size;
        int ret;
-       int err = 0;
        int metadata = 1;
 
        if (TRANS_ABORTED(trans))
@@ -1629,10 +1628,8 @@ static int run_delayed_extent_op(struct btrfs_trans_handle *trans,
 again:
        ret = btrfs_search_slot(trans, root, &key, path, 0, 1);
        if (ret < 0) {
-               err = ret;
                goto out;
-       }
-       if (ret > 0) {
+       } else if (ret > 0) {
                if (metadata) {
                        if (path->slots[0] > 0) {
                                path->slots[0]--;
@@ -1653,7 +1650,7 @@ again:
                                goto again;
                        }
                } else {
-                       err = -EUCLEAN;
+                       ret = -EUCLEAN;
                        btrfs_err(fs_info,
                  "missing extent item for extent %llu num_bytes %llu level %d",
                                  head->bytenr, head->num_bytes, extent_op->level);
@@ -1665,11 +1662,11 @@ again:
        item_size = btrfs_item_size(leaf, path->slots[0]);
 
        if (unlikely(item_size < sizeof(*ei))) {
-               err = -EUCLEAN;
+               ret = -EUCLEAN;
                btrfs_err(fs_info,
                          "unexpected extent item size, has %u expect >= %zu",
                          item_size, sizeof(*ei));
-               btrfs_abort_transaction(trans, err);
+               btrfs_abort_transaction(trans, ret);
                goto out;
        }
 
@@ -1679,7 +1676,7 @@ again:
        btrfs_mark_buffer_dirty(leaf);
 out:
        btrfs_free_path(path);
-       return err;
+       return ret;
 }
 
 static int run_delayed_tree_ref(struct btrfs_trans_handle *trans,