# SPDX-License-Identifier: GPL-2.0-only
config FUSE_FS
	tristate "FUSE (Filesystem in Userspace) support"
	select FS_POSIX_ACL
	help
	  With FUSE it is possible to implement a fully functional filesystem
	  in a userspace program.

	  There's also a companion library: libfuse2.  This library is available
	  from the FUSE homepage:
	  <https://github.com/libfuse/>
	  although chances are your distribution already has that library
	  installed if you've installed the "fuse" package itself.

	  See <file:Documentation/filesystems/fuse.rst> for more information.
	  See <file:Documentation/Changes> for needed library/utility version.

	  If you want to develop a userspace FS, or if you want to use
	  a filesystem based on FUSE, answer Y or M.

config CUSE
	tristate "Character device in Userspace support"
	depends on FUSE_FS
	help
	  This FUSE extension allows character devices to be
	  implemented in userspace.

	  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
	select VIRTIO
	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.

config FUSE_DAX
	bool "Virtio Filesystem Direct Host Memory Access support"
	default y
	select INTERVAL_TREE
	depends on VIRTIO_FS
	depends on FS_DAX
	depends on DAX
	help
	  This allows bypassing guest page cache and allows mapping host page
	  cache directly in guest address space.

	  If you want to allow mounting a Virtio Filesystem with the "dax"
	  option, answer Y.

config FUSE_PASSTHROUGH
	bool "FUSE passthrough operations support"
	default y
	depends on FUSE_FS
	select FS_STACK
	help
	  This allows bypassing FUSE server by mapping specific FUSE operations
	  to be performed directly on a backing file.

	  If you want to allow passthrough operations, answer Y.

config FUSE_CONN_ALIVE
	bool "FUSE alive auto recovery support"
	default n
	depends on FUSE_FS
	help
	  This allows enable fuse alive auto recovery function. Still need to
	  enable the sysctl to trigger the action. With fuse alive function
	  enabled, the disconnected connection may resume automatically after
	  resume.

	  If you may use fuse alive funcution operations, answer Y.
