btrfs: use BTRFS_PATH_AUTO_FREE in btrfs_check_dir_item_collision()
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/dir-item.c

index ccf91de29f802ebdb3a43aee917e667b9ee680ea..b29cc31a7c4a9dfe9f5cc510855e132d33719a04 100644 (file)
@@ -236,7 +236,7 @@ int btrfs_check_dir_item_collision(struct btrfs_root *root, u64 dir,
        int data_size;
        struct extent_buffer *leaf;
        int slot;
-       struct btrfs_path *path;
+       BTRFS_PATH_AUTO_FREE(path);
 
        path = btrfs_alloc_path();
        if (!path)
@@ -251,20 +251,17 @@ int btrfs_check_dir_item_collision(struct btrfs_root *root, u64 dir,
        if (IS_ERR(di)) {
                ret = PTR_ERR(di);
                /* Nothing found, we're safe */
-               if (ret == -ENOENT) {
-                       ret = 0;
-                       goto out;
-               }
+               if (ret == -ENOENT)
+                       return 0;
 
                if (ret < 0)
-                       goto out;
+                       return ret;
        }
 
        /* we found an item, look for our name in the item */
        if (di) {
                /* our exact name was found */
-               ret = -EEXIST;
-               goto out;
+               return -EEXIST;
        }
 
        /* See if there is room in the item to insert this name. */
@@ -273,14 +270,11 @@ int btrfs_check_dir_item_collision(struct btrfs_root *root, u64 dir,
        slot = path->slots[0];
        if (data_size + btrfs_item_size(leaf, slot) +
            sizeof(struct btrfs_item) > BTRFS_LEAF_DATA_SIZE(root->fs_info)) {
-               ret = -EOVERFLOW;
-       } else {
-               /* plenty of insertion room */
-               ret = 0;
+               return -EOVERFLOW;
        }
-out:
-       btrfs_free_path(path);
-       return ret;
+
+       /* Plenty of insertion room. */
+       return 0;
 }
 
 /*