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

config BCACHE
	tristate "Block device as cache"
	select CRC64
	help
	Allows a block device to be used as cache for other devices; uses
	a btree for indexing and the layout is optimized for SSDs.

	See Documentation/admin-guide/bcache.rst for details.

config BCACHE_DEBUG
	bool "Bcache debugging"
	depends on BCACHE
	help
	Don't select this option unless you're a developer

	Enables extra debugging tools, allows expensive runtime checks to be
	turned on.

config BCACHE_CLOSURES_DEBUG
	bool "Debug closures"
	depends on BCACHE
	select DEBUG_FS
	help
	Keeps all active closures in a linked list and provides a debugfs
	interface to list them, which makes it possible to see asynchronous
	operations that get stuck.

config BCACHE_ASYNC_REGISTRAION
	bool "Asynchronous device registration (EXPERIMENTAL)"
	depends on BCACHE
	help
	Add a sysfs file /sys/fs/bcache/register_async. Writing registering
	device path into this file will returns immediately and the real
	registration work is handled in kernel work queue in asynchronous
	way.
