# SPDX-License-Identifier: GPL-2.0-only
config CEPH_FS
	tristate "Ceph distributed file system"
	depends on INET
	select CEPH_LIB
	select LIBCRC32C
	select CRYPTO_AES
	select CRYPTO
	default n
	help
	  Choose Y or M here to include support for mounting the
	  experimental Ceph distributed file system.  Ceph is an extremely
	  scalable file system designed to provide high performance,
	  reliable access to petabytes of storage.

	  More information at http://ceph.newdream.net/.

	  If unsure, say N.

if CEPH_FS
config CEPH_FSCACHE
	bool "Enable Ceph client caching support"
	depends on CEPH_FS=m && FSCACHE || CEPH_FS=y && FSCACHE=y
	help
	  Choose Y here to enable persistent, read-only local
	  caching support for Ceph clients using FS-Cache

endif

config CEPH_FS_POSIX_ACL
	bool "Ceph POSIX Access Control Lists"
	depends on CEPH_FS
	select FS_POSIX_ACL
	help
	  POSIX Access Control Lists (ACLs) support permissions for users and
	  groups beyond the owner/group/world scheme.

	  If you don't know what Access Control Lists are, say N
