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: Filipe Manana <fdmanana@suse.com>
Reviewed-by: David Sterba <dsterba@suse.com>
Signed-off-by: David Sterba <dsterba@suse.com>
This commit is contained in:
Filipe Manana 2025-09-01 12:43:42 +01:00 committed by David Sterba
parent 2ac7094662
commit 29d9c5e037

View File

@ -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;