Commit 29d9c5e0 authored by Filipe Manana's avatar Filipe Manana Committed by David Sterba
Browse files

btrfs: avoid unnecessary path allocation at fixup_inode_link_count()



There's no need to allocate a path as our single caller already has a
path that we can use. So pass the caller's path and use it.

Signed-off-by: default avatarFilipe Manana <fdmanana@suse.com>
Reviewed-by: default avatarDavid Sterba <dsterba@suse.com>
Signed-off-by: default avatarDavid Sterba <dsterba@suse.com>
parent 2ac70946
Loading
Loading
Loading
Loading
+3 −7
Original line number Diff line number Diff line
@@ -1728,19 +1728,15 @@ static int count_inode_refs(struct btrfs_inode *inode, struct btrfs_path *path)
 * will free the inode.
 */
static noinline int fixup_inode_link_count(struct walk_control *wc,
					   struct btrfs_path *path,
					   struct btrfs_inode *inode)
{
	struct btrfs_trans_handle *trans = wc->trans;
	struct btrfs_root *root = inode->root;
	struct btrfs_path *path;
	int ret;
	u64 nlink = 0;
	const u64 ino = btrfs_ino(inode);

	path = btrfs_alloc_path();
	if (!path)
		return -ENOMEM;

	ret = count_inode_refs(inode, path);
	if (ret < 0)
		goto out;
@@ -1776,7 +1772,7 @@ static noinline int fixup_inode_link_count(struct walk_control *wc,
	}

out:
	btrfs_free_path(path);
	btrfs_release_path(path);
	return ret;
}

@@ -1821,7 +1817,7 @@ static noinline int fixup_inode_link_counts(struct walk_control *wc,
			break;
		}

		ret = fixup_inode_link_count(wc, inode);
		ret = fixup_inode_link_count(wc, path, inode);
		iput(&inode->vfs_inode);
		if (ret)
			break;