diff options
author | Al Viro <viro@zeniv.linux.org.uk> | 2022-06-06 07:30:50 +0300 |
---|---|---|
committer | Al Viro <viro@zeniv.linux.org.uk> | 2023-04-21 05:55:35 +0300 |
commit | 96e85e95dc22d53650cbd499e963c70103c06738 (patch) | |
tree | a5896bbc244ce2d36bbd5be9b96580c7e462ce00 /fs/namespace.c | |
parent | 38e124086282715e3b9b3d193d9308bb3499b46c (diff) | |
download | linux-96e85e95dc22d53650cbd499e963c70103c06738.tar.xz |
build_mount_idmapped(): switch to fdget()
Reviewed-by: Christian Brauner <brauner@kernel.org>
Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
Diffstat (limited to 'fs/namespace.c')
-rw-r--r-- | fs/namespace.c | 12 |
1 files changed, 6 insertions, 6 deletions
diff --git a/fs/namespace.c b/fs/namespace.c index bc0f15257b49..d26ea0d9041f 100644 --- a/fs/namespace.c +++ b/fs/namespace.c @@ -4197,7 +4197,7 @@ static int build_mount_idmapped(const struct mount_attr *attr, size_t usize, int err = 0; struct ns_common *ns; struct user_namespace *mnt_userns; - struct file *file; + struct fd f; if (!((attr->attr_set | attr->attr_clr) & MOUNT_ATTR_IDMAP)) return 0; @@ -4213,16 +4213,16 @@ static int build_mount_idmapped(const struct mount_attr *attr, size_t usize, if (attr->userns_fd > INT_MAX) return -EINVAL; - file = fget(attr->userns_fd); - if (!file) + f = fdget(attr->userns_fd); + if (!f.file) return -EBADF; - if (!proc_ns_file(file)) { + if (!proc_ns_file(f.file)) { err = -EINVAL; goto out_fput; } - ns = get_proc_ns(file_inode(file)); + ns = get_proc_ns(file_inode(f.file)); if (ns->ops->type != CLONE_NEWUSER) { err = -EINVAL; goto out_fput; @@ -4251,7 +4251,7 @@ static int build_mount_idmapped(const struct mount_attr *attr, size_t usize, kattr->mnt_userns = get_user_ns(mnt_userns); out_fput: - fput(file); + fdput(f); return err; } |