[PATCH 3/3] init/do_mounts.c: fix rootfs_fs_type with ramfs

From: menglong8 . dong
Date: Sat May 22 2021 - 07:32:38 EST


From: Menglong Dong <dong.menglong@xxxxxxxxxx>

As for the existence of 'user root' which is introduced in previous
patch, 'rootfs_fs_type', which is used as the root of mount tree,
is not used directly any more. So it make no sense to switch it
between ramfs and tmpfs, just fix it with ramfs to simplify the
code.

Signed-off-by: Menglong Dong <dong.menglong@xxxxxxxxxx>
---
fs/namespace.c | 2 --
include/linux/init.h | 1 -
init/do_mounts.c | 18 +-----------------
3 files changed, 1 insertion(+), 20 deletions(-)

diff --git a/fs/namespace.c b/fs/namespace.c
index f63337828e1c..8d2b57938e3a 100644
--- a/fs/namespace.c
+++ b/fs/namespace.c
@@ -17,7 +17,6 @@
#include <linux/security.h>
#include <linux/cred.h>
#include <linux/idr.h>
-#include <linux/init.h> /* init_rootfs */
#include <linux/fs_struct.h> /* get_fs_root et.al. */
#include <linux/fsnotify.h> /* fsnotify_vfsmount_delete */
#include <linux/file.h>
@@ -4241,7 +4240,6 @@ void __init mnt_init(void)
if (!fs_kobj)
printk(KERN_WARNING "%s: kobj create error\n", __func__);
shmem_init();
- init_rootfs();
init_mount_tree();
}

diff --git a/include/linux/init.h b/include/linux/init.h
index 045ad1650ed1..86bd92bb9550 100644
--- a/include/linux/init.h
+++ b/include/linux/init.h
@@ -148,7 +148,6 @@ extern unsigned int reset_devices;
/* used by init/main.c */
void setup_arch(char **);
void prepare_namespace(void);
-void __init init_rootfs(void);
extern struct file_system_type rootfs_fs_type;

#if defined(CONFIG_STRICT_KERNEL_RWX) || defined(CONFIG_STRICT_MODULE_RWX)
diff --git a/init/do_mounts.c b/init/do_mounts.c
index 943cb58846fb..6d1253f75bb0 100644
--- a/init/do_mounts.c
+++ b/init/do_mounts.c
@@ -689,24 +689,8 @@ void __init init_user_rootfs(void)
}
}

-static bool is_tmpfs;
-static int rootfs_init_fs_context(struct fs_context *fc)
-{
- if (IS_ENABLED(CONFIG_TMPFS) && is_tmpfs)
- return shmem_init_fs_context(fc);
-
- return ramfs_init_fs_context(fc);
-}
-
struct file_system_type rootfs_fs_type = {
.name = "rootfs",
- .init_fs_context = rootfs_init_fs_context,
+ .init_fs_context = ramfs_init_fs_context,
.kill_sb = kill_litter_super,
};
-
-void __init init_rootfs(void)
-{
- if (IS_ENABLED(CONFIG_TMPFS) && !saved_root_name[0] &&
- (!root_fs_names || strstr(root_fs_names, "tmpfs")))
- is_tmpfs = true;
-}
--
2.31.1