btrfs: use BTRFS_PATH_AUTO_FREE in btrfs_check_dir_item_collision()

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>
This commit is contained in:
David Sterba 2025-02-24 09:15:17 +01:00
parent 3e21e8e941
commit 50833146eb

View 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;
}
/*