162306a36Sopenharmony_ci# SPDX-License-Identifier: GPL-2.0-only
262306a36Sopenharmony_ciconfig F2FS_FS
362306a36Sopenharmony_ci	tristate "F2FS filesystem support"
462306a36Sopenharmony_ci	depends on BLOCK
562306a36Sopenharmony_ci	select BUFFER_HEAD
662306a36Sopenharmony_ci	select NLS
762306a36Sopenharmony_ci	select CRYPTO
862306a36Sopenharmony_ci	select CRYPTO_CRC32
962306a36Sopenharmony_ci	select F2FS_FS_XATTR if FS_ENCRYPTION
1062306a36Sopenharmony_ci	select FS_ENCRYPTION_ALGS if FS_ENCRYPTION
1162306a36Sopenharmony_ci	select FS_IOMAP
1262306a36Sopenharmony_ci	select LZ4_COMPRESS if F2FS_FS_LZ4
1362306a36Sopenharmony_ci	select LZ4_DECOMPRESS if F2FS_FS_LZ4
1462306a36Sopenharmony_ci	select LZ4HC_COMPRESS if F2FS_FS_LZ4HC
1562306a36Sopenharmony_ci	select LZO_COMPRESS if F2FS_FS_LZO
1662306a36Sopenharmony_ci	select LZO_DECOMPRESS if F2FS_FS_LZO
1762306a36Sopenharmony_ci	select ZSTD_COMPRESS if F2FS_FS_ZSTD
1862306a36Sopenharmony_ci	select ZSTD_DECOMPRESS if F2FS_FS_ZSTD
1962306a36Sopenharmony_ci	help
2062306a36Sopenharmony_ci	  F2FS is based on Log-structured File System (LFS), which supports
2162306a36Sopenharmony_ci	  versatile "flash-friendly" features. The design has been focused on
2262306a36Sopenharmony_ci	  addressing the fundamental issues in LFS, which are snowball effect
2362306a36Sopenharmony_ci	  of wandering tree and high cleaning overhead.
2462306a36Sopenharmony_ci
2562306a36Sopenharmony_ci	  Since flash-based storages show different characteristics according to
2662306a36Sopenharmony_ci	  the internal geometry or flash memory management schemes aka FTL, F2FS
2762306a36Sopenharmony_ci	  and tools support various parameters not only for configuring on-disk
2862306a36Sopenharmony_ci	  layout, but also for selecting allocation and cleaning algorithms.
2962306a36Sopenharmony_ci
3062306a36Sopenharmony_ci	  If unsure, say N.
3162306a36Sopenharmony_ci
3262306a36Sopenharmony_ciconfig F2FS_STAT_FS
3362306a36Sopenharmony_ci	bool "F2FS Status Information"
3462306a36Sopenharmony_ci	depends on F2FS_FS
3562306a36Sopenharmony_ci	default y
3662306a36Sopenharmony_ci	help
3762306a36Sopenharmony_ci	  /sys/kernel/debug/f2fs/ contains information about all the partitions
3862306a36Sopenharmony_ci	  mounted as f2fs. Each file shows the whole f2fs information.
3962306a36Sopenharmony_ci
4062306a36Sopenharmony_ci	  /sys/kernel/debug/f2fs/status includes:
4162306a36Sopenharmony_ci	    - major filesystem information managed by f2fs currently
4262306a36Sopenharmony_ci	    - average SIT information about whole segments
4362306a36Sopenharmony_ci	    - current memory footprint consumed by f2fs.
4462306a36Sopenharmony_ci
4562306a36Sopenharmony_ciconfig F2FS_FS_XATTR
4662306a36Sopenharmony_ci	bool "F2FS extended attributes"
4762306a36Sopenharmony_ci	depends on F2FS_FS
4862306a36Sopenharmony_ci	default y
4962306a36Sopenharmony_ci	help
5062306a36Sopenharmony_ci	  Extended attributes are name:value pairs associated with inodes by
5162306a36Sopenharmony_ci	  the kernel or by users (see the attr(5) manual page for details).
5262306a36Sopenharmony_ci
5362306a36Sopenharmony_ci	  If unsure, say N.
5462306a36Sopenharmony_ci
5562306a36Sopenharmony_ciconfig F2FS_FS_POSIX_ACL
5662306a36Sopenharmony_ci	bool "F2FS Access Control Lists"
5762306a36Sopenharmony_ci	depends on F2FS_FS_XATTR
5862306a36Sopenharmony_ci	select FS_POSIX_ACL
5962306a36Sopenharmony_ci	default y
6062306a36Sopenharmony_ci	help
6162306a36Sopenharmony_ci	  Posix Access Control Lists (ACLs) support permissions for users and
6262306a36Sopenharmony_ci	  groups beyond the owner/group/world scheme.
6362306a36Sopenharmony_ci
6462306a36Sopenharmony_ci	  If you don't know what Access Control Lists are, say N
6562306a36Sopenharmony_ci
6662306a36Sopenharmony_ciconfig F2FS_FS_SECURITY
6762306a36Sopenharmony_ci	bool "F2FS Security Labels"
6862306a36Sopenharmony_ci	depends on F2FS_FS_XATTR
6962306a36Sopenharmony_ci	help
7062306a36Sopenharmony_ci	  Security labels provide an access control facility to support Linux
7162306a36Sopenharmony_ci	  Security Models (LSMs) accepted by AppArmor, SELinux, Smack and TOMOYO
7262306a36Sopenharmony_ci	  Linux. This option enables an extended attribute handler for file
7362306a36Sopenharmony_ci	  security labels in the f2fs filesystem, so that it requires enabling
7462306a36Sopenharmony_ci	  the extended attribute support in advance. In particular you need this
7562306a36Sopenharmony_ci	  option if you use the setcap command to assign initial process capabi-
7662306a36Sopenharmony_ci	  lities to executables (the security.* extended attributes).
7762306a36Sopenharmony_ci
7862306a36Sopenharmony_ci	  If you are not using a security module, say N.
7962306a36Sopenharmony_ci
8062306a36Sopenharmony_ciconfig F2FS_CHECK_FS
8162306a36Sopenharmony_ci	bool "F2FS consistency checking feature"
8262306a36Sopenharmony_ci	depends on F2FS_FS
8362306a36Sopenharmony_ci	help
8462306a36Sopenharmony_ci	  Enables BUG_ONs which check the filesystem consistency in runtime.
8562306a36Sopenharmony_ci
8662306a36Sopenharmony_ci	  If you want to improve the performance, say N.
8762306a36Sopenharmony_ci
8862306a36Sopenharmony_ciconfig F2FS_FAULT_INJECTION
8962306a36Sopenharmony_ci	bool "F2FS fault injection facility"
9062306a36Sopenharmony_ci	depends on F2FS_FS
9162306a36Sopenharmony_ci	help
9262306a36Sopenharmony_ci	  Test F2FS to inject faults such as ENOMEM, ENOSPC, and so on.
9362306a36Sopenharmony_ci
9462306a36Sopenharmony_ci	  If unsure, say N.
9562306a36Sopenharmony_ci
9662306a36Sopenharmony_ciconfig F2FS_FS_COMPRESSION
9762306a36Sopenharmony_ci	bool "F2FS compression feature"
9862306a36Sopenharmony_ci	depends on F2FS_FS
9962306a36Sopenharmony_ci	help
10062306a36Sopenharmony_ci	  Enable filesystem-level compression on f2fs regular files,
10162306a36Sopenharmony_ci	  multiple back-end compression algorithms are supported.
10262306a36Sopenharmony_ci
10362306a36Sopenharmony_ciconfig F2FS_FS_LZO
10462306a36Sopenharmony_ci	bool "LZO compression support"
10562306a36Sopenharmony_ci	depends on F2FS_FS_COMPRESSION
10662306a36Sopenharmony_ci	default y
10762306a36Sopenharmony_ci	help
10862306a36Sopenharmony_ci	  Support LZO compress algorithm, if unsure, say Y.
10962306a36Sopenharmony_ci
11062306a36Sopenharmony_ciconfig F2FS_FS_LZORLE
11162306a36Sopenharmony_ci	bool "LZO-RLE compression support"
11262306a36Sopenharmony_ci	depends on F2FS_FS_LZO
11362306a36Sopenharmony_ci	default y
11462306a36Sopenharmony_ci	help
11562306a36Sopenharmony_ci	  Support LZO-RLE compress algorithm, if unsure, say Y.
11662306a36Sopenharmony_ci
11762306a36Sopenharmony_ciconfig F2FS_FS_LZ4
11862306a36Sopenharmony_ci	bool "LZ4 compression support"
11962306a36Sopenharmony_ci	depends on F2FS_FS_COMPRESSION
12062306a36Sopenharmony_ci	default y
12162306a36Sopenharmony_ci	help
12262306a36Sopenharmony_ci	  Support LZ4 compress algorithm, if unsure, say Y.
12362306a36Sopenharmony_ci
12462306a36Sopenharmony_ciconfig F2FS_FS_LZ4HC
12562306a36Sopenharmony_ci	bool "LZ4HC compression support"
12662306a36Sopenharmony_ci	depends on F2FS_FS_LZ4
12762306a36Sopenharmony_ci	default y
12862306a36Sopenharmony_ci	help
12962306a36Sopenharmony_ci	  Support LZ4HC compress algorithm, LZ4HC has compatible on-disk
13062306a36Sopenharmony_ci	  layout with LZ4, if unsure, say Y.
13162306a36Sopenharmony_ci
13262306a36Sopenharmony_ciconfig F2FS_FS_ZSTD
13362306a36Sopenharmony_ci	bool "ZSTD compression support"
13462306a36Sopenharmony_ci	depends on F2FS_FS_COMPRESSION
13562306a36Sopenharmony_ci	default y
13662306a36Sopenharmony_ci	help
13762306a36Sopenharmony_ci	  Support ZSTD compress algorithm, if unsure, say Y.
13862306a36Sopenharmony_ci
13962306a36Sopenharmony_ciconfig F2FS_IOSTAT
14062306a36Sopenharmony_ci	bool "F2FS IO statistics information"
14162306a36Sopenharmony_ci	depends on F2FS_FS
14262306a36Sopenharmony_ci	default y
14362306a36Sopenharmony_ci	help
14462306a36Sopenharmony_ci	  Support getting IO statistics through sysfs and printing out periodic
14562306a36Sopenharmony_ci	  IO statistics tracepoint events. You have to turn on "iostat_enable"
14662306a36Sopenharmony_ci	  sysfs node to enable this feature.
14762306a36Sopenharmony_ci
14862306a36Sopenharmony_ciconfig F2FS_UNFAIR_RWSEM
14962306a36Sopenharmony_ci	bool "F2FS unfair rw_semaphore"
15062306a36Sopenharmony_ci	depends on F2FS_FS && BLK_CGROUP
15162306a36Sopenharmony_ci	help
15262306a36Sopenharmony_ci	  Use unfair rw_semaphore, if system configured IO priority by block
15362306a36Sopenharmony_ci	  cgroup.
154