Merge tag 'pm-6.6-rc1-2' of git://git.kernel.org/pub/scm/linux/kernel/git/rafael...
[platform/kernel/linux-starfive.git] / fs / f2fs / Kconfig
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.