From: Stefan Hajnoczi <stefanha@xxxxxxxxxx> Add a basic file system module for virtio-fs. Signed-off-by: Stefan Hajnoczi <stefanha@xxxxxxxxxx> --- fs/fuse/Kconfig | 10 ++++++++++ fs/fuse/Makefile | 1 + fs/fuse/virtio_fs.c | 33 +++++++++++++++++++++++++++++++++ 3 files changed, 44 insertions(+) create mode 100644 fs/fuse/virtio_fs.c diff --git a/fs/fuse/Kconfig b/fs/fuse/Kconfig index 76f09ce7e5b2..0b1375126420 100644 --- a/fs/fuse/Kconfig +++ b/fs/fuse/Kconfig @@ -26,3 +26,13 @@ config CUSE If you want to develop or use a userspace character device based on CUSE, answer Y or M. + +config VIRTIO_FS + tristate "Virtio Filesystem" + depends on FUSE_FS + help + The Virtio Filesystem allows guests to mount file systems from the + host. + + If you want to share files between guests or with the host, answer Y + or M. diff --git a/fs/fuse/Makefile b/fs/fuse/Makefile index f7b807bc1027..47b78fac5809 100644 --- a/fs/fuse/Makefile +++ b/fs/fuse/Makefile @@ -4,5 +4,6 @@ obj-$(CONFIG_FUSE_FS) += fuse.o obj-$(CONFIG_CUSE) += cuse.o +obj-$(CONFIG_VIRTIO_FS) += virtio_fs.o fuse-objs := dev.o dir.o file.o inode.o control.o xattr.o acl.o readdir.o diff --git a/fs/fuse/virtio_fs.c b/fs/fuse/virtio_fs.c new file mode 100644 index 000000000000..6b7d3973bd85 --- /dev/null +++ b/fs/fuse/virtio_fs.c @@ -0,0 +1,33 @@ +// SPDX-License-Identifier: GPL-2.0 +/* + * virtio-fs: Virtio Filesystem + * Copyright (C) 2018 Red Hat, Inc. + */ + +#include <linux/module.h> +#include <linux/fs.h> + +MODULE_AUTHOR("Stefan Hajnoczi <stefanha@xxxxxxxxxx>"); +MODULE_DESCRIPTION("Virtio Filesystem"); +MODULE_LICENSE("GPL"); +MODULE_ALIAS_FS(KBUILD_MODNAME); + +static struct file_system_type virtio_fs_type = { + .owner = THIS_MODULE, + .name = KBUILD_MODNAME, + .mount = NULL, + .kill_sb = NULL, +}; + +static int __init virtio_fs_init(void) +{ + return register_filesystem(&virtio_fs_type); +} + +static void __exit virtio_fs_exit(void) +{ + unregister_filesystem(&virtio_fs_type); +} + +module_init(virtio_fs_init); +module_exit(virtio_fs_exit); -- 2.13.6