| 1 | # SPDX-License-Identifier: GPL-2.0-only |
| 2 | config FUSE_FS |
| 3 | tristate "FUSE (Filesystem in Userspace) support" |
| 4 | select FS_POSIX_ACL |
| 5 | select FS_IOMAP |
| 6 | help |
| 7 | With FUSE it is possible to implement a fully functional filesystem |
| 8 | in a userspace program. |
| 9 | |
| 10 | There's also a companion library: libfuse2. This library is available |
| 11 | from the FUSE homepage: |
| 12 | <https://github.com/libfuse/> |
| 13 | although chances are your distribution already has that library |
| 14 | installed if you've installed the "fuse" package itself. |
| 15 | |
| 16 | See <file:Documentation/filesystems/fuse/fuse.rst> for more information. |
| 17 | See <file:Documentation/Changes> for needed library/utility version. |
| 18 | |
| 19 | If you want to develop a userspace FS, or if you want to use |
| 20 | a filesystem based on FUSE, answer Y or M. |
| 21 | |
| 22 | config CUSE |
| 23 | tristate "Character device in Userspace support" |
| 24 | depends on FUSE_FS |
| 25 | help |
| 26 | This FUSE extension allows character devices to be |
| 27 | implemented in userspace. |
| 28 | |
| 29 | If you want to develop or use a userspace character device |
| 30 | based on CUSE, answer Y or M. |
| 31 | |
| 32 | config VIRTIO_FS |
| 33 | tristate "Virtio Filesystem" |
| 34 | depends on FUSE_FS |
| 35 | select VIRTIO |
| 36 | help |
| 37 | The Virtio Filesystem allows guests to mount file systems from the |
| 38 | host. |
| 39 | |
| 40 | If you want to share files between guests or with the host, answer Y |
| 41 | or M. |
| 42 | |
| 43 | config FUSE_DAX |
| 44 | bool "Virtio Filesystem Direct Host Memory Access support" |
| 45 | default y |
| 46 | select INTERVAL_TREE |
| 47 | depends on VIRTIO_FS |
| 48 | depends on FS_DAX |
| 49 | depends on DAX |
| 50 | help |
| 51 | This allows bypassing guest page cache and allows mapping host page |
| 52 | cache directly in guest address space. |
| 53 | |
| 54 | If you want to allow mounting a Virtio Filesystem with the "dax" |
| 55 | option, answer Y. |
| 56 | |
| 57 | config FUSE_PASSTHROUGH |
| 58 | bool "FUSE passthrough operations support" |
| 59 | default y |
| 60 | depends on FUSE_FS |
| 61 | select FS_STACK |
| 62 | help |
| 63 | This allows bypassing FUSE server by mapping specific FUSE operations |
| 64 | to be performed directly on a backing file. |
| 65 | |
| 66 | If you want to allow passthrough operations, answer Y. |
| 67 | |
| 68 | config FUSE_IO_URING |
| 69 | bool "FUSE communication over io-uring" |
| 70 | default y |
| 71 | depends on FUSE_FS |
| 72 | depends on IO_URING |
| 73 | help |
| 74 | This allows sending FUSE requests over the io-uring interface and |
| 75 | also adds request core affinity. |
| 76 | |
| 77 | If you want to allow fuse server/client communication through io-uring, |
| 78 | answer Y |