From a5f0e0a4df6c37ab1d21035b05976ab1eeb8dc95 Mon Sep 17 00:00:00 2001 From: David Sterba Date: Thu, 26 Jun 2025 16:30:10 +0200 Subject: [PATCH] btrfs: pass dentry to btrfs_mksubvol() and btrfs_mksnapshot() There's no reason to pass 'struct path' to btrfs_mksubvol(), though it's been like the since the first commit 76dda93c6ae2c1 ("Btrfs: add snapshot/subvolume destroy ioctl"). We only use the dentry so we should pass it directly. Reviewed-by: Boris Burkov Signed-off-by: David Sterba --- fs/btrfs/ioctl.c | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/fs/btrfs/ioctl.c b/fs/btrfs/ioctl.c index 99c701ec58056..c0fa1b3584df2 100644 --- a/fs/btrfs/ioctl.c +++ b/fs/btrfs/ioctl.c @@ -892,13 +892,13 @@ static inline int btrfs_may_create(struct mnt_idmap *idmap, * sys_mkdirat and vfs_mkdir, but we only do a single component lookup * inside this filesystem so it's quite a bit simpler. */ -static noinline int btrfs_mksubvol(const struct path *parent, +static noinline int btrfs_mksubvol(struct dentry *parent, struct mnt_idmap *idmap, struct qstr *qname, struct btrfs_root *snap_src, bool readonly, struct btrfs_qgroup_inherit *inherit) { - struct inode *dir = d_inode(parent->dentry); + struct inode *dir = d_inode(parent); struct btrfs_fs_info *fs_info = inode_to_fs_info(dir); struct dentry *dentry; struct fscrypt_str name_str = FSTR_INIT((char *)qname->name, qname->len); @@ -908,7 +908,7 @@ static noinline int btrfs_mksubvol(const struct path *parent, if (ret == -EINTR) return ret; - dentry = lookup_one(idmap, qname, parent->dentry); + dentry = lookup_one(idmap, qname, parent); ret = PTR_ERR(dentry); if (IS_ERR(dentry)) goto out_unlock; @@ -946,7 +946,7 @@ out_unlock: return ret; } -static noinline int btrfs_mksnapshot(const struct path *parent, +static noinline int btrfs_mksnapshot(struct dentry *parent, struct mnt_idmap *idmap, struct qstr *qname, struct btrfs_root *root, @@ -1208,7 +1208,7 @@ static noinline int __btrfs_ioctl_snap_create(struct file *file, } if (subvol) { - ret = btrfs_mksubvol(&file->f_path, idmap, &qname, NULL, + ret = btrfs_mksubvol(file_dentry(file), idmap, &qname, NULL, readonly, inherit); } else { CLASS(fd, src)(fd); @@ -1239,7 +1239,7 @@ static noinline int __btrfs_ioctl_snap_create(struct file *file, */ ret = -EINVAL; } else { - ret = btrfs_mksnapshot(&file->f_path, idmap, &qname, + ret = btrfs_mksnapshot(file_dentry(file), idmap, &qname, BTRFS_I(src_inode)->root, readonly, inherit); } -- 2.47.2