Commit 50833146 authored by David Sterba's avatar David Sterba
Browse files

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: default avatarJohannes Thumshirn <johannes.thumshirn@wdc.com>
Signed-off-by: default avatarDavid Sterba <dsterba@suse.com>
parent 3e21e8e9
Loading
Loading
Loading
Loading
+9 −15
Original line number Diff line number Diff line
@@ -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;
}

/*