1 # SPDX-License-Identifier: GPL-2.0-only
2 config 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 
32 config 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 
45 config 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 
55 config 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 
66 config 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 
80 config 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 
88 config 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 
96 config 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 
103 config 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 
110 config 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 
117 config 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 
124 config 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 
132 config 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 
139 config 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 
148 config 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