[<prev] [next>] [<thread-prev] [day] [month] [year] [list]
Message-ID: <a70cedcc4389cc90ecac7b7c477481724c71824a.camel@gmail.com>
Date: Mon, 11 Nov 2024 18:22:23 +0100
From: Francesco Lavra <francescolavra.fl@...il.com>
To: Al Viro <viro@...iv.linux.org.uk>, linux-fsdevel@...r.kernel.org
Cc: brauner@...nel.org, cgroups@...r.kernel.org, kvm@...r.kernel.org,
netdev@...r.kernel.org, torvalds@...ux-foundation.org
Subject: Re: [PATCH v3 14/28] fdget(), trivial conversions
On Sat, 2024-11-02 at 05:08 +0000, Al Viro wrote:
> fdget() is the first thing done in scope, all matching fdput() are
> immediately followed by leaving the scope.
>
> Reviewed-by: Christian Brauner <brauner@...nel.org>
> Signed-off-by: Al Viro <viro@...iv.linux.org.uk>
> ---
> arch/powerpc/kvm/book3s_64_vio.c | 21 +++---------
> arch/powerpc/kvm/powerpc.c | 24 ++++---------
> arch/powerpc/platforms/cell/spu_syscalls.c | 6 ++--
> arch/x86/kernel/cpu/sgx/main.c | 10 ++----
> arch/x86/kvm/svm/sev.c | 39 ++++++++------------
> --
> drivers/gpu/drm/amd/amdgpu/amdgpu_sched.c | 23 ++++---------
> drivers/gpu/drm/drm_syncobj.c | 9 ++---
> drivers/media/rc/lirc_dev.c | 13 +++-----
> fs/btrfs/ioctl.c | 5 ++-
> fs/eventfd.c | 9 ++---
> fs/eventpoll.c | 23 ++++---------
> fs/fhandle.c | 5 ++-
> fs/ioctl.c | 23 +++++--------
> fs/kernel_read_file.c | 12 +++----
> fs/notify/fanotify/fanotify_user.c | 15 +++------
> fs/notify/inotify/inotify_user.c | 17 +++-------
> fs/open.c | 36 +++++++++-----------
> fs/read_write.c | 28 +++++-----------
> fs/signalfd.c | 9 ++---
> fs/sync.c | 29 ++++++----------
> io_uring/sqpoll.c | 29 +++++-----------
> kernel/events/core.c | 14 +++-----
> kernel/nsproxy.c | 5 ++-
> kernel/pid.c | 7 ++--
> kernel/sys.c | 15 +++------
> kernel/watch_queue.c | 6 ++--
> mm/fadvise.c | 10 ++----
> mm/readahead.c | 17 +++-------
> net/core/net_namespace.c | 10 +++---
> security/landlock/syscalls.c | 26 +++++----------
> virt/kvm/vfio.c | 8 ++---
> 31 files changed, 164 insertions(+), 339 deletions(-)
[...]
> diff --git a/fs/read_write.c b/fs/read_write.c
> index ef3ee3725714..5e3df2d39283 100644
> --- a/fs/read_write.c
> +++ b/fs/read_write.c
> @@ -1663,36 +1663,32 @@ SYSCALL_DEFINE6(copy_file_range, int, fd_in,
> loff_t __user *, off_in,
> {
> loff_t pos_in;
> loff_t pos_out;
> - struct fd f_in;
> - struct fd f_out;
> ssize_t ret = -EBADF;
This initialization is no longer needed.
>
> - f_in = fdget(fd_in);
> - if (!fd_file(f_in))
> - goto out2;
> + CLASS(fd, f_in)(fd_in);
> + if (fd_empty(f_in))
> + return -EBADF;
>
> - f_out = fdget(fd_out);
> - if (!fd_file(f_out))
> - goto out1;
> + CLASS(fd, f_out)(fd_out);
> + if (fd_empty(f_out))
> + return -EBADF;
>
> - ret = -EFAULT;
> if (off_in) {
> if (copy_from_user(&pos_in, off_in, sizeof(loff_t)))
> - goto out;
> + return -EFAULT;
> } else {
> pos_in = fd_file(f_in)->f_pos;
> }
>
> if (off_out) {
> if (copy_from_user(&pos_out, off_out,
> sizeof(loff_t)))
> - goto out;
> + return -EFAULT;
> } else {
> pos_out = fd_file(f_out)->f_pos;
> }
>
> - ret = -EINVAL;
> if (flags != 0)
> - goto out;
> + return -EINVAL;
>
> ret = vfs_copy_file_range(fd_file(f_in), pos_in,
> fd_file(f_out), pos_out, len,
> flags);
Powered by blists - more mailing lists