Messages in this thread | | | Date | Thu, 18 Jan 2018 17:10:20 +0000 | From | Al Viro <> | Subject | Re: [RFC][PATCH] get rid of the use of set_fs() (by way of kernel_recvmsg()) in sunrpc |
| |
On Thu, Jan 18, 2018 at 08:29:57AM -0800, Christoph Hellwig wrote: > > 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...
| |