From 313c47f4fe4d07eb2969f429a66ad331fe2b3b6f Mon Sep 17 00:00:00 2001 From: Christian Brauner Date: Wed, 14 Jan 2026 11:22:54 +0100 Subject: fs: use nullfs unconditionally as the real rootfs Remove the "nullfs_rootfs" boot parameter and simply always use nullfs. The mutable rootfs will be mounted on top of it. Systems that don't use pivot_root() to pivot away from the real rootfs will have an additional mount stick around but that shouldn't be a problem at all. If it is we'll rever this commit. This also simplifies the boot process and removes the need for the traditional switch_root workarounds. Suggested-by: Jeff Layton Signed-off-by: Christian Brauner --- init/do_mounts.c | 20 +++++++------------- init/do_mounts.h | 1 - 2 files changed, 7 insertions(+), 14 deletions(-) (limited to 'init') diff --git a/init/do_mounts.c b/init/do_mounts.c index 675397c8a7a4..df6847bcf1f2 100644 --- a/init/do_mounts.c +++ b/init/do_mounts.c @@ -493,21 +493,15 @@ void __init prepare_namespace(void) out: devtmpfs_mount(); - if (nullfs_rootfs) { - if (init_pivot_root(".", ".")) { - pr_err("VFS: Failed to pivot into new rootfs\n"); - return; - } - if (init_umount(".", MNT_DETACH)) { - pr_err("VFS: Failed to unmount old rootfs\n"); - return; - } - pr_info("VFS: Pivoted into new rootfs\n"); + if (init_pivot_root(".", ".")) { + pr_err("VFS: Failed to pivot into new rootfs\n"); return; } - - init_mount(".", "/", NULL, MS_MOVE, NULL); - init_chroot("."); + if (init_umount(".", MNT_DETACH)) { + pr_err("VFS: Failed to unmount old rootfs\n"); + return; + } + pr_info("VFS: Pivoted into new rootfs\n"); } static bool is_tmpfs; diff --git a/init/do_mounts.h b/init/do_mounts.h index fbfee810aa89..6069ea3eb80d 100644 --- a/init/do_mounts.h +++ b/init/do_mounts.h @@ -15,7 +15,6 @@ void mount_root_generic(char *name, char *pretty_name, int flags); void mount_root(char *root_device_name); extern int root_mountflags; -extern bool nullfs_rootfs; static inline __init int create_dev(char *name, dev_t dev) { -- cgit v1.2.3