
config BCACHEFS_FS
	tristate "bcachefs filesystem support (EXPERIMENTAL)"
	depends on BLOCK
	select EXPORTFS
	select CRC32
	select CRC64
	select FS_POSIX_ACL
	select LZ4_COMPRESS
	select LZ4_DECOMPRESS
	select LZ4HC_COMPRESS
	select ZLIB_DEFLATE
	select ZLIB_INFLATE
	select ZSTD_COMPRESS
	select ZSTD_DECOMPRESS
	select CRYPTO_LIB_SHA256
	select CRYPTO_LIB_CHACHA
	select CRYPTO_LIB_POLY1305
	select KEYS
	select RAID6_PQ
	select XOR_BLOCKS
	select XXHASH
	select SYMBOLIC_ERRNAME
	help
	The bcachefs filesystem - a modern, copy on write filesystem, with
	support for multiple devices, compression, checksumming, etc.

config BCACHEFS_QUOTA
	bool "bcachefs quota support"
	depends on BCACHEFS_FS
	select QUOTACTL

config BCACHEFS_ERASURE_CODING
	bool "bcachefs erasure coding (RAID5/6) support (EXPERIMENTAL)"
	depends on BCACHEFS_FS
	help
	This enables the "erasure_code" filesysystem and inode option, which
	organizes data into reed-solomon stripes instead of ordinary
	replication.

	WARNING: this feature is still undergoing on disk format changes, and
	should only be enabled for testing purposes.

config BCACHEFS_DEBUG
	bool "bcachefs debugging"
	depends on BCACHEFS_FS
	help
	Enables many extra debugging checks and assertions.

	The resulting code will be significantly slower than normal; you
	probably shouldn't select this option unless you're a developer.

config BCACHEFS_INJECT_TRANSACTION_RESTARTS
	bool "Randomly inject transaction restarts"
	depends on BCACHEFS_DEBUG
	help
	Randomly inject transaction restarts in a few core paths - may have a
	significant performance penalty

config BCACHEFS_TESTS
	bool "bcachefs unit and performance tests"
	depends on BCACHEFS_FS
	help
	Include some unit and performance tests for the core btree code

config BCACHEFS_LOCK_TIME_STATS
       bool "bcachefs lock time statistics"
       depends on BCACHEFS_FS
       help
       Expose statistics for how long we held a lock in debugfs

config BCACHEFS_NO_LATENCY_ACCT
	bool "disable latency accounting and time stats"
	depends on BCACHEFS_FS
	help
	This disables device latency tracking and time stats, only for performance testing

config BCACHEFS_SIX_OPTIMISTIC_SPIN
	bool "Optimistic spinning for six locks"
	depends on BCACHEFS_FS
	depends on SMP
	default y
	help
	Instead of immediately sleeping when attempting to take a six lock that
	is held by another thread, spin for a short while, as long as the
	thread owning the lock is running.

config BCACHEFS_PATH_TRACEPOINTS
	bool "Extra btree_path tracepoints"
	depends on BCACHEFS_FS && TRACING
	help
	Enable extra tracepoints for debugging btree_path operations; we don't
	normally want these enabled because they happen at very high rates.

config BCACHEFS_TRANS_KMALLOC_TRACE
	bool "Trace bch2_trans_kmalloc() calls"
	depends on BCACHEFS_FS

config MEAN_AND_VARIANCE_UNIT_TEST
	tristate "mean_and_variance unit tests" if !KUNIT_ALL_TESTS
	depends on KUNIT
	depends on BCACHEFS_FS
	default KUNIT_ALL_TESTS
	help
	  This option enables the kunit tests for mean_and_variance module.
	  If unsure, say N.
