Re: [PATCH v3 0/3] init/initramfs.c: make initramfs support pivot_root

From: Menglong Dong
Date: Tue Jun 01 2021 - 09:55:51 EST


Hello!

What's the status or fate of this patch? Does anyone do an in-depth
study of this field? Knock-knock~

On Sat, May 29, 2021 at 10:26 AM Masami Hiramatsu <mhiramat@xxxxxxxxxx> wrote:
>
> Hi Menglong,
>
> On Fri, 28 May 2021 22:37:59 +0800
> menglong8.dong@xxxxxxxxx wrote:
>
> > From: Menglong Dong <dong.menglong@xxxxxxxxxx>
> >
> > As Luis Chamberlain suggested, I split the patch:
> > [init/initramfs.c: make initramfs support pivot_root]
> > (https://lore.kernel.org/linux-fsdevel/20210520154244.20209-1-dong.menglong@xxxxxxxxxx/)
> > into three.
> >
> > The goal of the series patches is to make pivot_root() support initramfs.
> >
> > In the first patch, I introduce the function ramdisk_exec_exist(), which
> > is used to check the exist of 'ramdisk_execute_command' in LOOKUP_DOWN
> > lookup mode.
> >
> > In the second patch, I create a second mount, which is called
> > 'user root', and make it become the root. Therefore, the root has a
> > parent mount, and it can be umounted or pivot_root.
> >
> > In the third patch, I fix rootfs_fs_type with ramfs, as it is not used
> > directly any more, and it make no sense to switch it between ramfs and
> > tmpfs, just fix it with ramfs to simplify the code.
> >
> >
> > Changes since V2:
> >
> > In the first patch, I use vfs_path_lookup() in init_eaccess() to make the
> > path lookup follow the mount on '/'. After this, the problem reported by
> > Masami Hiramatsu is solved. Thanks for your report :/
>
> Thank you for the fix, I confirmed that the issue has been solved with this.
>
> Tested-by: Masami Hiramatsu <mhiramat@xxxxxxxxxx>
>
> for this series.
>
> Regards,
>
>
> >
> >
> > Changes since V1:
> >
> > In the first patch, I add the flag LOOKUP_DOWN to init_eaccess(), to make
> > it support the check of filesystem mounted on '/'.
> >
> > In the second patch, I control 'user root' with kconfig option
> > 'CONFIG_INITRAMFS_USER_ROOT', and add some comments, as Luis Chamberlain
> > suggested.
> >
> > In the third patch, I make 'rootfs_fs_type' in control of
> > 'CONFIG_INITRAMFS_USER_ROOT'.
> >
> >
> >
> > Menglong Dong (3):
> > init/main.c: introduce function ramdisk_exec_exist()
> > init/do_cmounts.c: introduce 'user_root' for initramfs
> > init/do_mounts.c: fix rootfs_fs_type with ramfs
> >
> > fs/init.c | 11 ++++-
> > include/linux/init.h | 5 ++
> > init/do_mounts.c | 109 +++++++++++++++++++++++++++++++++++++++++++
> > init/do_mounts.h | 18 ++++++-
> > init/initramfs.c | 10 ++++
> > init/main.c | 7 ++-
> > usr/Kconfig | 10 ++++
> > 7 files changed, 166 insertions(+), 4 deletions(-)
> >
> > --
> > 2.32.0.rc0
> >
>
>
> --
> Masami Hiramatsu <mhiramat@xxxxxxxxxx>

Thanks!
Menglong Dong