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