1# SPDX-License-Identifier: GPL-2.0-only
2config F2FS_FS
3	tristate "F2FS filesystem support"
4	depends on BLOCK
5	select NLS
6	select CRYPTO
7	select CRYPTO_CRC32
8	select F2FS_FS_XATTR if FS_ENCRYPTION
9	select FS_ENCRYPTION_ALGS if FS_ENCRYPTION
10	help
11	  F2FS is based on Log-structured File System (LFS), which supports
12	  versatile "flash-friendly" features. The design has been focused on
13	  addressing the fundamental issues in LFS, which are snowball effect
14	  of wandering tree and high cleaning overhead.
15
16	  Since flash-based storages show different characteristics according to
17	  the internal geometry or flash memory management schemes aka FTL, F2FS
18	  and tools support various parameters not only for configuring on-disk
19	  layout, but also for selecting allocation and cleaning algorithms.
20
21	  If unsure, say N.
22
23config F2FS_STAT_FS
24	bool "F2FS Status Information"
25	depends on F2FS_FS
26	default y
27	help
28	  /sys/kernel/debug/f2fs/ contains information about all the partitions
29	  mounted as f2fs. Each file shows the whole f2fs information.
30
31	  /sys/kernel/debug/f2fs/status includes:
32	    - major filesystem information managed by f2fs currently
33	    - average SIT information about whole segments
34	    - current memory footprint consumed by f2fs.
35
36config F2FS_FS_XATTR
37	bool "F2FS extended attributes"
38	depends on F2FS_FS
39	default y
40	help
41	  Extended attributes are name:value pairs associated with inodes by
42	  the kernel or by users (see the attr(5) manual page for details).
43
44	  If unsure, say N.
45
46config F2FS_FS_POSIX_ACL
47	bool "F2FS Access Control Lists"
48	depends on F2FS_FS_XATTR
49	select FS_POSIX_ACL
50	default y
51	help
52	  Posix Access Control Lists (ACLs) support permissions for users and
53	  groups beyond the owner/group/world scheme.
54
55	  If you don't know what Access Control Lists are, say N
56
57config F2FS_FS_SECURITY
58	bool "F2FS Security Labels"
59	depends on F2FS_FS_XATTR
60	help
61	  Security labels provide an access control facility to support Linux
62	  Security Models (LSMs) accepted by AppArmor, SELinux, Smack and TOMOYO
63	  Linux. This option enables an extended attribute handler for file
64	  security labels in the f2fs filesystem, so that it requires enabling
65	  the extended attribute support in advance. In particular you need this
66	  option if you use the setcap command to assign initial process capabi-
67	  lities to executables (the security.* extended attributes).
68
69	  If you are not using a security module, say N.
70
71config F2FS_CHECK_FS
72	bool "F2FS consistency checking feature"
73	depends on F2FS_FS
74	help
75	  Enables BUG_ONs which check the filesystem consistency in runtime.
76
77	  If you want to improve the performance, say N.
78
79config F2FS_IO_TRACE
80	bool "F2FS IO tracer"
81	depends on F2FS_FS
82	depends on FUNCTION_TRACER
83	help
84	  F2FS IO trace is based on a function trace, which gathers process
85	  information and block IO patterns in the filesystem level.
86
87	  If unsure, say N.
88
89config F2FS_FAULT_INJECTION
90	bool "F2FS fault injection facility"
91	depends on F2FS_FS
92	help
93	  Test F2FS to inject faults such as ENOMEM, ENOSPC, and so on.
94
95	  If unsure, say N.
96
97config F2FS_FS_COMPRESSION
98	bool "F2FS compression feature"
99	depends on F2FS_FS
100	help
101	  Enable filesystem-level compression on f2fs regular files,
102	  multiple back-end compression algorithms are supported.
103
104config F2FS_FS_LZO
105	bool "LZO compression support"
106	depends on F2FS_FS_COMPRESSION
107	select LZO_COMPRESS
108	select LZO_DECOMPRESS
109	default y
110	help
111	  Support LZO compress algorithm, if unsure, say Y.
112
113config F2FS_FS_LZ4
114	bool "LZ4 compression support"
115	depends on F2FS_FS_COMPRESSION
116	select LZ4_COMPRESS
117	select LZ4_DECOMPRESS
118	default y
119	help
120	  Support LZ4 compress algorithm, if unsure, say Y.
121
122config F2FS_FS_ZSTD
123	bool "ZSTD compression support"
124	depends on F2FS_FS_COMPRESSION
125	select ZSTD_COMPRESS
126	select ZSTD_DECOMPRESS
127	default y
128	help
129	  Support ZSTD compress algorithm, if unsure, say Y.
130
131config F2FS_FS_LZORLE
132	bool "LZO-RLE compression support"
133	depends on F2FS_FS_COMPRESSION
134	depends on F2FS_FS_LZO
135	select LZO_COMPRESS
136	select LZO_DECOMPRESS
137	default y
138	help
139	  Support LZO-RLE compress algorithm, if unsure, say Y.
140