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

config EROFS_FS
	tristate "EROFS filesystem support"
	depends on BLOCK
	select LIBCRC32C
	help
	  EROFS (Enhanced Read-Only File System) is a lightweight
	  read-only file system with modern designs (eg. page-sized
	  blocks, inline xattrs/data, etc.) for scenarios which need
	  high-performance read-only requirements, e.g. Android OS
	  for mobile phones and LIVECDs.

	  It also provides fixed-sized output compression support,
	  which improves storage density, keeps relatively higher
	  compression ratios, which is more useful to achieve high
	  performance for embedded devices with limited memory.

	  If unsure, say N.

config EROFS_FS_DEBUG
	bool "EROFS debugging feature"
	depends on EROFS_FS
	help
	  Print debugging messages and enable more BUG_ONs which check
	  filesystem consistency and find potential issues aggressively,
	  which can be used for Android eng build, for example.

	  For daily use, say N.

config EROFS_FS_XATTR
	bool "EROFS extended attributes"
	depends on EROFS_FS
	default y
	help
	  Extended attributes are name:value pairs associated with inodes by
	  the kernel or by users (see the attr(5) manual page, or visit
	  <http://acl.bestbits.at/> for details).

	  If unsure, say N.

config EROFS_FS_POSIX_ACL
	bool "EROFS Access Control Lists"
	depends on EROFS_FS_XATTR
	select FS_POSIX_ACL
	default y
	help
	  Posix Access Control Lists (ACLs) support permissions for users and
	  groups beyond the owner/group/world scheme.

	  To learn more about Access Control Lists, visit the POSIX ACLs for
	  Linux website <http://acl.bestbits.at/>.

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

config EROFS_FS_SECURITY
	bool "EROFS Security Labels"
	depends on EROFS_FS_XATTR
	default y
	help
	  Security labels provide an access control facility to support Linux
	  Security Models (LSMs) accepted by AppArmor, SELinux, Smack and TOMOYO
	  Linux. This option enables an extended attribute handler for file
	  security labels in the erofs filesystem, so that it requires enabling
	  the extended attribute support in advance.

	  If you are not using a security module, say N.

config EROFS_FS_ZIP
	bool "EROFS Data Compression Support"
	depends on EROFS_FS
	select LZ4_DECOMPRESS
	default y
	help
	  Enable fixed-sized output compression for EROFS.

	  If you don't want to enable compression feature, say N.

config EROFS_FS_CLUSTER_PAGE_LIMIT
	int "EROFS Cluster Pages Hard Limit"
	depends on EROFS_FS_ZIP
	range 1 256
	default "1"
	help
	  Indicates maximum # of pages of a compressed
	  physical cluster.

	  For example, if files in a image were compressed
	  into 8k-unit, hard limit should not be configured
	  less than 2. Otherwise, the image will be refused
	  to mount on this kernel.

