diff options
author | David Sterba <dsterba@suse.com> | 2025-02-24 09:15:17 +0100 |
---|---|---|
committer | David Sterba <dsterba@suse.com> | 2025-03-18 20:35:48 +0100 |
commit | 899c8798b59b16f7ffdc73e3766bfcf126cad483 (patch) | |
tree | 50c1b625c227b09a9955ed67c5c798cb1fbce06a | |
parent | 72f2bae3c15ce54b0c38d7ee348de1ca74ef6de9 (diff) |
btrfs: use BTRFS_PATH_AUTO_FREE in btrfs_get_name()
This is the trivial pattern for path auto free, initialize at the
beginning and free at the end with some return simplifications.
Reviewed-by: Johannes Thumshirn <johannes.thumshirn@wdc.com>
Signed-off-by: David Sterba <dsterba@suse.com>
-rw-r--r-- | fs/btrfs/export.c | 10 |
1 files changed, 3 insertions, 7 deletions
diff --git a/fs/btrfs/export.c b/fs/btrfs/export.c index 0c0b8db82df6..a91eaf0ca34e 100644 --- a/fs/btrfs/export.c +++ b/fs/btrfs/export.c @@ -223,7 +223,7 @@ static int btrfs_get_name(struct dentry *parent, char *name, struct btrfs_inode *dir = BTRFS_I(d_inode(parent)); struct btrfs_root *root = dir->root; struct btrfs_fs_info *fs_info = root->fs_info; - struct btrfs_path *path; + BTRFS_PATH_AUTO_FREE(path); struct btrfs_inode_ref *iref; struct btrfs_root_ref *rref; struct extent_buffer *leaf; @@ -255,15 +255,12 @@ static int btrfs_get_name(struct dentry *parent, char *name, ret = btrfs_search_slot(NULL, root, &key, path, 0, 0); if (ret < 0) { - btrfs_free_path(path); return ret; } else if (ret > 0) { - if (ino == BTRFS_FIRST_FREE_OBJECTID) { + if (ino == BTRFS_FIRST_FREE_OBJECTID) path->slots[0]--; - } else { - btrfs_free_path(path); + else return -ENOENT; - } } leaf = path->nodes[0]; @@ -280,7 +277,6 @@ static int btrfs_get_name(struct dentry *parent, char *name, } read_extent_buffer(leaf, name, name_ptr, name_len); - btrfs_free_path(path); /* * have to add the null termination to make sure that reconnect_path |