]> git.ipfire.org Git - thirdparty/linux.git/commitdiff
btrfs: use BTRFS_PATH_AUTO_FREE in btrfs_init_root_free_objectid()
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/disk-io.c

index 28ff9c524fba78ad52ddcc06073a26f8d0de236a..52c2335ef62f0ce006994025b29cc6fec4e84b0c 100644 (file)
@@ -4896,7 +4896,7 @@ static int btrfs_cleanup_transaction(struct btrfs_fs_info *fs_info)
 
 int btrfs_init_root_free_objectid(struct btrfs_root *root)
 {
-       struct btrfs_path *path;
+       BTRFS_PATH_AUTO_FREE(path);
        int ret;
        struct extent_buffer *l;
        struct btrfs_key search_key;
@@ -4912,14 +4912,13 @@ int btrfs_init_root_free_objectid(struct btrfs_root *root)
        search_key.offset = (u64)-1;
        ret = btrfs_search_slot(NULL, root, &search_key, path, 0, 0);
        if (ret < 0)
-               goto error;
+               return ret;
        if (ret == 0) {
                /*
                 * Key with offset -1 found, there would have to exist a root
                 * with such id, but this is out of valid range.
                 */
-               ret = -EUCLEAN;
-               goto error;
+               return -EUCLEAN;
        }
        if (path->slots[0] > 0) {
                slot = path->slots[0] - 1;
@@ -4930,10 +4929,8 @@ int btrfs_init_root_free_objectid(struct btrfs_root *root)
        } else {
                root->free_objectid = BTRFS_FIRST_FREE_OBJECTID;
        }
-       ret = 0;
-error:
-       btrfs_free_path(path);
-       return ret;
+
+       return 0;
 }
 
 int btrfs_get_free_objectid(struct btrfs_root *root, u64 *objectid)