On Fri, May 01, 2020 at 02:40:13PM -0700, Andrew Morton wrote: > On Fri, 1 May 2020 22:30:48 +0100 Al Viro <viro@xxxxxxxxxxxxxxxxxx> wrote: > > > On Fri, May 01, 2020 at 02:19:03PM -0700, Andrew Morton wrote: > > > On Fri, 1 May 2020 12:41:05 +0200 Christoph Hellwig <hch@xxxxxx> wrote: > > > > > > > Currently copy_string_kernel is just a wrapper around copy_strings that > > > > simplifies the calling conventions and uses set_fs to allow passing a > > > > kernel pointer. But due to the fact the we only need to handle a single > > > > kernel argument pointer, the logic can be sigificantly simplified while > > > > getting rid of the set_fs. > > > > > > > > > > I don't get why this is better? copy_strings() is still there and > > > won't be going away - what's wrong with simply reusing it in this > > > fashion? > > > > > > I guess set_fs() is a bit hacky, but there's the benefit of not having > > > to maintain two largely similar bits of code? > > > > Killing set_fs() would be a very good thing... > > Why is that? And is there a project afoot to do this? Long story - basically, it's been a source of massive headache too many times. No formal project, but there are several people (me, Arnd, Christoph) who'd been reducing its use. For more than a decade now, I think... FWIW, I doubt that it will be entirely killable; Christoph appears to be more optimistic. In any case, its use has been greatly reduced and having it narrowed down to even fewer places would be a good thing. In the same direction: use_mm()/unuse_mm() regularization wrt set_fs(), getting rid of it in coredump code, some movements towards killing ioctl_by_bdev(); not sure if I've spotted everything - Christoph?