Re: add file system helpers that take kernel pointers for the init code v3

2020-07-26 Thread Al Viro
On Sun, Jul 26, 2020 at 06:26:27PM +0200, Christoph Hellwig wrote:
> On Sun, Jul 26, 2020 at 06:24:26PM +0200, Christoph Hellwig wrote:
> > Btw, care to take a look at 
> > 
> > http://git.infradead.org/users/hch/misc.git/shortlog/refs/heads/kernel_readwrite
> > 
> > it has been in linux-next for 2 1/2 weeks, and the only interesting
> > thing found was that btrfs didn't wire up iter_splice_write, which has
> > already been fixed in mainline.
> 
> Actually, the above is a stale old branch sorry.  The real one that has
> been in linux-next is:
> 
> http://git.infradead.org/users/hch/misc.git/shortlog/refs/heads/set_fs-rw

Will check... still crawling through the accumulated VFS-related threads
from the last weeks ;-/


Re: add file system helpers that take kernel pointers for the init code v3

2020-07-26 Thread Christoph Hellwig
On Sun, Jul 26, 2020 at 06:24:26PM +0200, Christoph Hellwig wrote:
> Btw, care to take a look at 
> 
> http://git.infradead.org/users/hch/misc.git/shortlog/refs/heads/kernel_readwrite
> 
> it has been in linux-next for 2 1/2 weeks, and the only interesting
> thing found was that btrfs didn't wire up iter_splice_write, which has
> already been fixed in mainline.

Actually, the above is a stale old branch sorry.  The real one that has
been in linux-next is:

http://git.infradead.org/users/hch/misc.git/shortlog/refs/heads/set_fs-rw


Re: add file system helpers that take kernel pointers for the init code v3

2020-07-26 Thread Christoph Hellwig
On Sun, Jul 26, 2020 at 05:21:13PM +0100, Al Viro wrote:
> On Sun, Jul 26, 2020 at 05:52:04PM +0200, Christoph Hellwig wrote:
> > On Sun, Jul 26, 2020 at 08:49:28AM -0700, Linus Torvalds wrote:
> > > On Sun, Jul 26, 2020 at 12:14 AM Christoph Hellwig  wrote:
> > > >
> > > > Hi Al and Linus,
> > > >
> > > > currently a lot of the file system calls in the early in code (and the
> > > > devtmpfs kthread) rely on the implicit set_fs(KERNEL_DS) during boot.
> > > > This is one of the few last remaining places we need to deal with to 
> > > > kill
> > > > off set_fs entirely, so this series adds new helpers that take kernel
> > > > pointers.  These helpers are in init/ and marked __init and thus will
> > > > be discarded after bootup.  A few also need to be duplicated in 
> > > > devtmpfs,
> > > > though unfortunately.
> > > 
> > > I see nothing objectionable here.
> > > 
> > > The only bikeshed comment I have is that I think the "for_init.c" name
> > > is ugly and pointless - I think you could just call it "fs/init.c" and
> > > it's both simpler and more straightforward. It _is_ init code, it's
> > > not "for" init.
> > 
> > That was Al's suggestion.  I personally don't care, so if between the
> > two of you, you can come up with a preferred choice I'll switch to it.
> 
> I can live with either variant; the only problem with fs/init.c is that
> such name would imply the init code _of_ VFS, rather than VFS helpers for
> init.
> 
> Anyway, the series looks generally sane; if no other objections are raised,
> I'm adding it to vfs.git#for-next

Thanks!

Note that this is based on top of my init-user-pointers branch, so you'll
need to pull that in as.

Btw, care to take a look at 

http://git.infradead.org/users/hch/misc.git/shortlog/refs/heads/kernel_readwrite

it has been in linux-next for 2 1/2 weeks, and the only interesting
thing found was that btrfs didn't wire up iter_splice_write, which has
already been fixed in mainline.


Re: add file system helpers that take kernel pointers for the init code v3

2020-07-26 Thread Al Viro
On Sun, Jul 26, 2020 at 05:52:04PM +0200, Christoph Hellwig wrote:
> On Sun, Jul 26, 2020 at 08:49:28AM -0700, Linus Torvalds wrote:
> > On Sun, Jul 26, 2020 at 12:14 AM Christoph Hellwig  wrote:
> > >
> > > Hi Al and Linus,
> > >
> > > currently a lot of the file system calls in the early in code (and the
> > > devtmpfs kthread) rely on the implicit set_fs(KERNEL_DS) during boot.
> > > This is one of the few last remaining places we need to deal with to kill
> > > off set_fs entirely, so this series adds new helpers that take kernel
> > > pointers.  These helpers are in init/ and marked __init and thus will
> > > be discarded after bootup.  A few also need to be duplicated in devtmpfs,
> > > though unfortunately.
> > 
> > I see nothing objectionable here.
> > 
> > The only bikeshed comment I have is that I think the "for_init.c" name
> > is ugly and pointless - I think you could just call it "fs/init.c" and
> > it's both simpler and more straightforward. It _is_ init code, it's
> > not "for" init.
> 
> That was Al's suggestion.  I personally don't care, so if between the
> two of you, you can come up with a preferred choice I'll switch to it.

I can live with either variant; the only problem with fs/init.c is that
such name would imply the init code _of_ VFS, rather than VFS helpers for
init.

Anyway, the series looks generally sane; if no other objections are raised,
I'm adding it to vfs.git#for-next


Re: add file system helpers that take kernel pointers for the init code v3

2020-07-26 Thread Christoph Hellwig
On Sun, Jul 26, 2020 at 08:49:28AM -0700, Linus Torvalds wrote:
> On Sun, Jul 26, 2020 at 12:14 AM Christoph Hellwig  wrote:
> >
> > Hi Al and Linus,
> >
> > currently a lot of the file system calls in the early in code (and the
> > devtmpfs kthread) rely on the implicit set_fs(KERNEL_DS) during boot.
> > This is one of the few last remaining places we need to deal with to kill
> > off set_fs entirely, so this series adds new helpers that take kernel
> > pointers.  These helpers are in init/ and marked __init and thus will
> > be discarded after bootup.  A few also need to be duplicated in devtmpfs,
> > though unfortunately.
> 
> I see nothing objectionable here.
> 
> The only bikeshed comment I have is that I think the "for_init.c" name
> is ugly and pointless - I think you could just call it "fs/init.c" and
> it's both simpler and more straightforward. It _is_ init code, it's
> not "for" init.

That was Al's suggestion.  I personally don't care, so if between the
two of you, you can come up with a preferred choice I'll switch to it.


Re: add file system helpers that take kernel pointers for the init code v3

2020-07-26 Thread Linus Torvalds
On Sun, Jul 26, 2020 at 12:14 AM Christoph Hellwig  wrote:
>
> Hi Al and Linus,
>
> currently a lot of the file system calls in the early in code (and the
> devtmpfs kthread) rely on the implicit set_fs(KERNEL_DS) during boot.
> This is one of the few last remaining places we need to deal with to kill
> off set_fs entirely, so this series adds new helpers that take kernel
> pointers.  These helpers are in init/ and marked __init and thus will
> be discarded after bootup.  A few also need to be duplicated in devtmpfs,
> though unfortunately.

I see nothing objectionable here.

The only bikeshed comment I have is that I think the "for_init.c" name
is ugly and pointless - I think you could just call it "fs/init.c" and
it's both simpler and more straightforward. It _is_ init code, it's
not "for" init.

Other than that it all looked straightforward to me.

Linus


add file system helpers that take kernel pointers for the init code v3

2020-07-26 Thread Christoph Hellwig
Hi Al and Linus,

currently a lot of the file system calls in the early in code (and the
devtmpfs kthread) rely on the implicit set_fs(KERNEL_DS) during boot.
This is one of the few last remaining places we need to deal with to kill
off set_fs entirely, so this series adds new helpers that take kernel
pointers.  These helpers are in init/ and marked __init and thus will
be discarded after bootup.  A few also need to be duplicated in devtmpfs,
though unfortunately.

The series sits on top of my previous

  "decruft the early init / initrd / initramfs code v2"

series.


Git tree:

git://git.infradead.org/users/hch/misc.git init_path

Gitweb:

http://git.infradead.org/users/hch/misc.git/shortlog/refs/heads/init_path


Changes since v2:
 - move to fs/for-init.c
 - reuse the init routines in devtmpfs after refactoring devtmpfsd
   (and thus the broken error handling in the previous version)
 - actually use kern_path in a place where user_path_at sneaked back in

Changes since v1:
 - avoid most core VFS changes
 - renamed the functions and move them to init/ and devtmpfs
 - drop a bunch of cleanups that can be submitted independently now


Diffstat:
 drivers/base/devtmpfs.c   |   54 +
 drivers/md/md-autodetect.c|3 
 fs/Makefile   |2 
 fs/for_init.c |  249 ++
 fs/internal.h |   19 +--
 fs/namei.c|   20 +--
 fs/namespace.c|  107 --
 fs/open.c |   22 +--
 include/linux/init_syscalls.h |   18 +++
 include/linux/syscalls.h  |   66 ---
 init/do_mounts.c  |   12 +-
 init/do_mounts.h  |7 -
 init/do_mounts_initrd.c   |   26 ++--
 init/do_mounts_rd.c   |2 
 init/initramfs.c  |   29 ++--
 init/main.c   |   10 -
 init/noinitramfs.c|8 -
 17 files changed, 423 insertions(+), 231 deletions(-)