Re: [PATCH 09/14] fs: don't change the address limit for ->write_iter in __kernel_write

From: Christoph Hellwig
Date: Fri May 29 2020 - 01:57:43 EST


On Thu, May 28, 2020 at 08:00:52PM +0100, Al Viro wrote:
> On Thu, May 28, 2020 at 07:40:38AM +0200, Christoph Hellwig wrote:
> > If we write to a file that implements ->write_iter there is no need
> > to change the address limit if we send a kvec down. Implement that
> > case, and prefer it over using plain ->write with a changed address
> > limit if available.
>
> Umm... It needs a comment along the lines of "weird shits like
> /dev/sg that currently check for uaccess_kernel() will just
> have to make sure they never switch to ->write_iter()"

sg and hid has the uaccess_kernel because it accesses userspace memory not
in the range passed to it. Something using write_iter/read_iter should
never access any memory outside the iter passed to. rdma has it because
it uses write as a bidirectional interface, which obviously can't work at
all with an iter. So I'm not sure what we should comment on, but if
you have a desire and a proposal for a comment I'll happily add it.