[PATCH 13/13] init/do_mounts.c: add virtio_fs root fs support

From: Vivek Goyal
Date: Wed Aug 21 2019 - 13:38:25 EST


It is useful to mount the root file system via virtio_fs. During
testing a monolithic kernel is more convenient than an initramfs but
we'll need to teach the kernel how to boot directly from virtio_fs.

Signed-off-by: Stefan Hajnoczi <stefanha@xxxxxxxxxx>
---
init/do_mounts.c | 10 ++++++++++
1 file changed, 10 insertions(+)

diff --git a/init/do_mounts.c b/init/do_mounts.c
index 53cb37b66227..d7e7bb83f85b 100644
--- a/init/do_mounts.c
+++ b/init/do_mounts.c
@@ -554,6 +554,16 @@ void __init mount_root(void)
change_floppy("root floppy");
}
#endif
+#ifdef CONFIG_VIRTIO_FS
+ if (root_fs_names && !strcmp(root_fs_names, "virtio_fs")) {
+ if (!do_mount_root(root_device_name, "virtio_fs",
+ root_mountflags, root_mount_data))
+ return;
+
+ panic("VFS: Unable to mount root fs \"%s\" from virtio_fs",
+ root_device_name);
+ }
+#endif
#ifdef CONFIG_BLOCK
{
int err = create_dev("/dev/root", ROOT_DEV);
--
2.20.1