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