]> git.ipfire.org Git - thirdparty/linux.git/commitdiff
btrfs: use BTRFS_PATH_AUTO_FREE in btrfs_init_dev_replace()
authorDavid Sterba <dsterba@suse.com>
Mon, 24 Feb 2025 08:15:17 +0000 (09:15 +0100)
committerDavid Sterba <dsterba@suse.com>
Tue, 18 Mar 2025 19:35:47 +0000 (20:35 +0100)
This is the trivial pattern for path auto free, initialize at the
beginning and free at the end with simple goto -> return conversions.

Reviewed-by: Johannes Thumshirn <johannes.thumshirn@wdc.com>
Signed-off-by: David Sterba <dsterba@suse.com>
fs/btrfs/dev-replace.c

index f86fbea0b3de682210d84260132e44734e90b5c8..147c5494adf910e8dfceb4d7e5f6f54de684e20f 100644 (file)
@@ -76,7 +76,7 @@ int btrfs_init_dev_replace(struct btrfs_fs_info *fs_info)
        struct extent_buffer *eb;
        int slot;
        int ret = 0;
-       struct btrfs_path *path = NULL;
+       BTRFS_PATH_AUTO_FREE(path);
        int item_size;
        struct btrfs_dev_replace_item *ptr;
        u64 src_devid;
@@ -85,10 +85,8 @@ int btrfs_init_dev_replace(struct btrfs_fs_info *fs_info)
                return 0;
 
        path = btrfs_alloc_path();
-       if (!path) {
-               ret = -ENOMEM;
-               goto out;
-       }
+       if (!path)
+               return -ENOMEM;
 
        key.objectid = 0;
        key.type = BTRFS_DEV_REPLACE_KEY;
@@ -103,8 +101,7 @@ no_valid_dev_replace_entry_found:
                if (btrfs_find_device(fs_info->fs_devices, &args)) {
                        btrfs_err(fs_info,
                        "found replace target device without a valid replace item");
-                       ret = -EUCLEAN;
-                       goto out;
+                       return -EUCLEAN;
                }
                ret = 0;
                dev_replace->replace_state =
@@ -123,7 +120,7 @@ no_valid_dev_replace_entry_found:
                dev_replace->tgtdev = NULL;
                dev_replace->is_valid = 0;
                dev_replace->item_needs_writeback = 0;
-               goto out;
+               return ret;
        }
        slot = path->slots[0];
        eb = path->nodes[0];
@@ -226,8 +223,6 @@ no_valid_dev_replace_entry_found:
                break;
        }
 
-out:
-       btrfs_free_path(path);
        return ret;
 }