Re: [RFC][PATCH] get rid of the use of set_fs() (by way of kernel_recvmsg()) in sunrpc
From: Al Viro <viro@ZenIV.linux.org.uk>
Date: 2018-01-18 17:10:20
Also in:
linux-arch, lkml
From: Al Viro <viro@ZenIV.linux.org.uk>
Date: 2018-01-18 17:10:20
Also in:
linux-arch, lkml
On Thu, Jan 18, 2018 at 08:29:57AM -0800, Christoph Hellwig wrote:
quoted
We could turn ->msg_control/->msg_controllen into another iov_iter, but seeing that we never do scatter-gather for those IMO that would be a massive overkill. A flag controlling whether ->msg_control is kernel or userland pointer would do, especially since we already have a flag for "do we want a native or compat layout for cmsg" in there.While your current hack seems like a nice short term improvement I think we need an iov_iter or iov_iter-light there in the long run.
For one caller in the entire history of the kernel?
Same for ioctl so that we can pass properly typed kernel or user buffers through without all these set_fs hacks.
Umm... Most of the PITA with ioctls is due to compat ones being reformatted for native and fed under set_fs(). I actually have a series dealing with most of such places for net ioctls. Sure, there's also ioctl_by_bdev(), but for those we might be better off exposing the things like ->get_last_session() and its ilk to filesystems that want to deal with cdroms... It's kernel_setsockopt() that is the real PITA...