mirror of
https://github.com/torvalds/linux.git
synced 2026-05-26 08:02:27 +02:00
btrfs: use may_create_dentry() in btrfs_mksubvol()
There is no longer the need to use btrfs_may_create(), which was a copy of the VFS private function may_create(), since now that functionality is exported by the VFS as a function named may_create_dentry(). So change btrfs_mksubvol() to use the VFS function and remove btrfs_may_create(). Note that the btrfs copy was missing an audit_inode_child() call that we have in the VFS function. This only reinforces the need to use a common function, as it's very easy for the btrfs copy to get out of sync and therefore a maintenance burden. Signed-off-by: Filipe Manana <fdmanana@suse.com> Link: https://patch.msgid.link/adf8c802c77ec1c855ea9fe12491120ccc29a294.1768307858.git.fdmanana@suse.com Reviewed-by: David Sterba <dsterba@suse.com> Signed-off-by: Christian Brauner <brauner@kernel.org>
This commit is contained in:
parent
5f84a1092d
commit
6c91c776a9
|
|
@ -815,19 +815,6 @@ static int create_snapshot(struct btrfs_root *root, struct inode *dir,
|
|||
return ret;
|
||||
}
|
||||
|
||||
/* copy of may_create in fs/namei.c() */
|
||||
static inline int btrfs_may_create(struct mnt_idmap *idmap,
|
||||
struct inode *dir, const struct dentry *child)
|
||||
{
|
||||
if (d_really_is_positive(child))
|
||||
return -EEXIST;
|
||||
if (IS_DEADDIR(dir))
|
||||
return -ENOENT;
|
||||
if (!fsuidgid_has_mapping(dir->i_sb, idmap))
|
||||
return -EOVERFLOW;
|
||||
return inode_permission(idmap, dir, MAY_WRITE | MAY_EXEC);
|
||||
}
|
||||
|
||||
/*
|
||||
* Create a new subvolume below @parent. This is largely modeled after
|
||||
* sys_mkdirat and vfs_mkdir, but we only do a single component lookup
|
||||
|
|
@ -849,7 +836,7 @@ static noinline int btrfs_mksubvol(struct dentry *parent,
|
|||
if (IS_ERR(dentry))
|
||||
return PTR_ERR(dentry);
|
||||
|
||||
ret = btrfs_may_create(idmap, dir, dentry);
|
||||
ret = may_create_dentry(idmap, dir, dentry);
|
||||
if (ret)
|
||||
goto out_dput;
|
||||
|
||||
|
|
|
|||
Loading…
Reference in New Issue
Block a user