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