Re: [PATCH] btrfs: use BTRFS_PATH_AUTO_FREE in btrfs_truncate_inode_items()

From: David Sterba
Date: Mon Apr 14 2025 - 05:23:09 EST


On Fri, Apr 11, 2025 at 04:17:38PM +0200, Daniel Vacek wrote:
> On Fri, 11 Apr 2025 at 05:25, Yangtao Li <frank.li@xxxxxxxx> wrote:
> >
> > All cleanup paths lead to btrfs_path_free so we can define path with the
> > automatic free callback.
> >
> > And David Sterba point out that:
> > We may still find cases worth converting, the typical pattern is
> > btrfs_path_alloc() somewhere near top of the function and
> > btrfs_free_path() called right before a return.
> >
> > So let's convert it.
> >
> > Signed-off-by: Yangtao Li <frank.li@xxxxxxxx>
> > ---
> > fs/btrfs/inode-item.c | 3 +--
> > 1 file changed, 1 insertion(+), 2 deletions(-)
>
> And what about the other functions in that file? We could even get rid
> of two allocations passing the path from ..._inode_ref() to
> ..._inode_extref().

If you mean to pass the path object from btrfs_del_inode_ref() to
btrfs_del_inode_extref() yeah this looks like a good optimization and
reducing the allocations (and potential failures).

The other cases in the "..._inode_ref" is btrfs_insert_inode_ref() ->
btrfs_insert_inode_extref().