# SPDX-License-Identifier: GPL-2.0-only

config NETFS_SUPPORT
	tristate
	help
	  This option enables support for network filesystems, including
	  helpers for high-level buffered I/O, abstracting out read
	  segmentation, local caching and transparent huge page support.

config NETFS_STATS
	bool "Gather statistical information on local caching"
	depends on NETFS_SUPPORT && PROC_FS
	help
	  This option causes statistical information to be gathered on local
	  caching and exported through file:

		/proc/fs/fscache/stats

	  The gathering of statistics adds a certain amount of overhead to
	  execution as there are a quite a few stats gathered, and on a
	  multi-CPU system these may be on cachelines that keep bouncing
	  between CPUs.  On the other hand, the stats are very useful for
	  debugging purposes.  Saying 'Y' here is recommended.

config FSCACHE
	bool "General filesystem local caching manager"
	depends on NETFS_SUPPORT
	help
	  This option enables a generic filesystem caching manager that can be
	  used by various network and other filesystems to cache data locally.
	  Different sorts of caches can be plugged in, depending on the
	  resources available.

	  See Documentation/filesystems/caching/fscache.rst for more information.

config FSCACHE_STATS
	bool "Gather statistical information on local caching"
	depends on FSCACHE && PROC_FS
	select NETFS_STATS
	help
	  This option causes statistical information to be gathered on local
	  caching and exported through file:

		/proc/fs/fscache/stats

	  The gathering of statistics adds a certain amount of overhead to
	  execution as there are a quite a few stats gathered, and on a
	  multi-CPU system these may be on cachelines that keep bouncing
	  between CPUs.  On the other hand, the stats are very useful for
	  debugging purposes.  Saying 'Y' here is recommended.

	  See Documentation/filesystems/caching/fscache.rst for more information.

config FSCACHE_DEBUG
	bool "Debug FS-Cache"
	depends on FSCACHE
	help
	  This permits debugging to be dynamically enabled in the local caching
	  management module.  If this is set, the debugging output may be
	  enabled by setting bits in /sys/modules/fscache/parameter/debug.

	  See Documentation/filesystems/caching/fscache.rst for more information.
