All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH 0/3] init/initramfs.c: make initramfs support pivot_root
@ 2021-05-22 11:31 menglong8.dong
  2021-05-22 11:31 ` [PATCH 1/3] init/main.c: introduce function ramdisk_exec_exist() menglong8.dong
                   ` (2 more replies)
  0 siblings, 3 replies; 11+ messages in thread
From: menglong8.dong @ 2021-05-22 11:31 UTC (permalink / raw)
  To: mcgrof
  Cc: viro, keescook, samitolvanen, johan, ojeda, jeyu, joe,
	dong.menglong, masahiroy, jack, axboe, hare, gregkh, tj, song,
	neilb, akpm, brho, f.fainelli, wangkefeng.wang, arnd, linux,
	mhiramat, rostedt, vbabka, glider, pmladek, ebiederm, jojing64,
	linux-fsdevel, linux-kernel

From: Menglong Dong <dong.menglong@zte.com.cn>

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@zte.com.cn/)
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 relative path
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.

Before change root, I have to check the exist of ramdisk_execute_command,
because 'user root' should be umounted if ramdisk_execute_command not
exist. 'user root' is mounted on '/root', and cpio is unpacked to it. So
I have to use relative path to do this check, as 'user root' is not the
root yet.

Maybe I can do the check after change root, but it seems complex to
change root back to '/'. What's weird is that I try to move 'user root'
from '/root' to '/', but the absolute path lookup seems never follow the
mount. That's why I introduced ramdisk_exec_exist.

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.



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/namespace.c       |  2 --
 include/linux/init.h |  1 -
 init/do_mounts.c     | 82 +++++++++++++++++++++++++++++++++++++-------
 init/do_mounts.h     |  7 +++-
 init/initramfs.c     | 10 ++++++
 init/main.c          | 17 ++++++++-
 6 files changed, 101 insertions(+), 18 deletions(-)

-- 
2.31.1


^ permalink raw reply	[flat|nested] 11+ messages in thread

end of thread, other threads:[~2021-05-25  8:08 UTC | newest]

Thread overview: 11+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2021-05-22 11:31 [PATCH 0/3] init/initramfs.c: make initramfs support pivot_root menglong8.dong
2021-05-22 11:31 ` [PATCH 1/3] init/main.c: introduce function ramdisk_exec_exist() menglong8.dong
2021-05-25  1:02   ` Josh Triplett
2021-05-25  3:43     ` Menglong Dong
2021-05-25  8:04       ` Menglong Dong
2021-05-22 11:31 ` [PATCH 2/3] init/do_cmounts.c: introduce 'user_root' for initramfs menglong8.dong
2021-05-25  0:44   ` Luis Chamberlain
2021-05-25  3:28     ` Menglong Dong
2021-05-22 11:31 ` [PATCH 3/3] init/do_mounts.c: fix rootfs_fs_type with ramfs menglong8.dong
2021-05-24 21:47   ` Luis Chamberlain
2021-05-25  0:52   ` Luis Chamberlain

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.