mirror of
https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git
synced 2024-12-29 09:16:33 +00:00
file: remove __receive_fd()
Honestly, there's little value in having a helper with and without that int __user *ufd argument. It's just messy and doesn't really give us anything. Just expose receive_fd() with that argument and get rid of that helper. Link: https://lore.kernel.org/r/20231130-vfs-files-fixes-v1-5-e73ca6f4ea83@kernel.org Reviewed-by: Jan Kara <jack@suse.cz> Reviewed-by: Jens Axboe <axboe@kernel.dk> Signed-off-by: Christian Brauner <brauner@kernel.org>
This commit is contained in:
parent
eac9189c96
commit
4e94ddfe2a
@ -1157,7 +1157,7 @@ static long vduse_dev_ioctl(struct file *file, unsigned int cmd,
|
||||
fput(f);
|
||||
break;
|
||||
}
|
||||
ret = receive_fd(f, perm_to_file_flags(entry.perm));
|
||||
ret = receive_fd(f, NULL, perm_to_file_flags(entry.perm));
|
||||
fput(f);
|
||||
break;
|
||||
}
|
||||
|
11
fs/file.c
11
fs/file.c
@ -1296,7 +1296,7 @@ int replace_fd(unsigned fd, struct file *file, unsigned flags)
|
||||
}
|
||||
|
||||
/**
|
||||
* __receive_fd() - Install received file into file descriptor table
|
||||
* receive_fd() - Install received file into file descriptor table
|
||||
* @file: struct file that was received from another process
|
||||
* @ufd: __user pointer to write new fd number to
|
||||
* @o_flags: the O_* flags to apply to the new fd entry
|
||||
@ -1310,7 +1310,7 @@ int replace_fd(unsigned fd, struct file *file, unsigned flags)
|
||||
*
|
||||
* Returns newly install fd or -ve on error.
|
||||
*/
|
||||
int __receive_fd(struct file *file, int __user *ufd, unsigned int o_flags)
|
||||
int receive_fd(struct file *file, int __user *ufd, unsigned int o_flags)
|
||||
{
|
||||
int new_fd;
|
||||
int error;
|
||||
@ -1335,6 +1335,7 @@ int __receive_fd(struct file *file, int __user *ufd, unsigned int o_flags)
|
||||
__receive_sock(file);
|
||||
return new_fd;
|
||||
}
|
||||
EXPORT_SYMBOL_GPL(receive_fd);
|
||||
|
||||
int receive_fd_replace(int new_fd, struct file *file, unsigned int o_flags)
|
||||
{
|
||||
@ -1350,12 +1351,6 @@ int receive_fd_replace(int new_fd, struct file *file, unsigned int o_flags)
|
||||
return new_fd;
|
||||
}
|
||||
|
||||
int receive_fd(struct file *file, unsigned int o_flags)
|
||||
{
|
||||
return __receive_fd(file, NULL, o_flags);
|
||||
}
|
||||
EXPORT_SYMBOL_GPL(receive_fd);
|
||||
|
||||
static int ksys_dup3(unsigned int oldfd, unsigned int newfd, int flags)
|
||||
{
|
||||
int err = -EBADF;
|
||||
|
@ -96,10 +96,7 @@ DEFINE_CLASS(get_unused_fd, int, if (_T >= 0) put_unused_fd(_T),
|
||||
|
||||
extern void fd_install(unsigned int fd, struct file *file);
|
||||
|
||||
extern int __receive_fd(struct file *file, int __user *ufd,
|
||||
unsigned int o_flags);
|
||||
|
||||
extern int receive_fd(struct file *file, unsigned int o_flags);
|
||||
int receive_fd(struct file *file, int __user *ufd, unsigned int o_flags);
|
||||
|
||||
int receive_fd_replace(int new_fd, struct file *file, unsigned int o_flags);
|
||||
|
||||
|
@ -214,7 +214,7 @@ static inline int scm_recv_one_fd(struct file *f, int __user *ufd,
|
||||
{
|
||||
if (!ufd)
|
||||
return -EFAULT;
|
||||
return __receive_fd(f, ufd, flags);
|
||||
return receive_fd(f, ufd, flags);
|
||||
}
|
||||
|
||||
#endif /* __LINUX_NET_SCM_H */
|
||||
|
@ -700,7 +700,7 @@ static int pidfd_getfd(struct pid *pid, int fd)
|
||||
if (IS_ERR(file))
|
||||
return PTR_ERR(file);
|
||||
|
||||
ret = receive_fd(file, O_CLOEXEC);
|
||||
ret = receive_fd(file, NULL, O_CLOEXEC);
|
||||
fput(file);
|
||||
|
||||
return ret;
|
||||
|
@ -1072,7 +1072,7 @@ static void seccomp_handle_addfd(struct seccomp_kaddfd *addfd, struct seccomp_kn
|
||||
*/
|
||||
list_del_init(&addfd->list);
|
||||
if (!addfd->setfd)
|
||||
fd = receive_fd(addfd->file, addfd->flags);
|
||||
fd = receive_fd(addfd->file, NULL, addfd->flags);
|
||||
else
|
||||
fd = receive_fd_replace(addfd->fd, addfd->file, addfd->flags);
|
||||
addfd->ret = fd;
|
||||
|
Loading…
Reference in New Issue
Block a user