From 86ff6456417628f2d76f0941a728f082800a70d8 Mon Sep 17 00:00:00 2001 From: Roberto Sassu Date: Wed, 3 Mar 2021 08:43:51 +0100 Subject: [PATCH] init: Add kernel option to force usage of tmpfs for rootfs hulk inclusion category: feature feature: IMA Digest Lists extension bugzilla: 46797 ------------------------------------------------- This patch adds the new option initramtmpfs for the kernel command line, to force usage of tmpfs instead of ramfs as filesystem for rootfs. This option should be used when the initial ram disk contains xattrs, as only tmpfs supports them. Signed-off-by: Roberto Sassu Signed-off-by: Tianxing Zhang Reviewed-by: Jason Yan Signed-off-by: Zheng Zengkai --- init/do_mounts.c | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) diff --git a/init/do_mounts.c b/init/do_mounts.c index b5f9604d0c98..3f5567127e34 100644 --- a/init/do_mounts.c +++ b/init/do_mounts.c @@ -32,6 +32,7 @@ int root_mountflags = MS_RDONLY | MS_SILENT; static char * __initdata root_device_name; static char __initdata saved_root_name[64]; static int root_wait; +static int initramtmpfs; dev_t ROOT_DEV; @@ -355,9 +356,16 @@ static int __init root_delay_setup(char *str) return 1; } +static int __init initramtmpfs_setup(char *str) +{ + initramtmpfs = 1; + return 1; +} + __setup("rootflags=", root_data_setup); __setup("rootfstype=", fs_names_setup); __setup("rootdelay=", root_delay_setup); +__setup("initramtmpfs", initramtmpfs_setup); static void __init get_fs_names(char *page) { @@ -649,7 +657,8 @@ struct file_system_type rootfs_fs_type = { void __init init_rootfs(void) { - if (IS_ENABLED(CONFIG_TMPFS) && !saved_root_name[0] && + if (IS_ENABLED(CONFIG_TMPFS) && + (!saved_root_name[0] || initramtmpfs) && (!root_fs_names || strstr(root_fs_names, "tmpfs"))) is_tmpfs = true; } -- GitLab