GNU Linux-libre 5.19-gnu
[releases.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 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
31 config 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
44 config 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
54 config 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
65 config 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
79 config 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
87 config 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
95 config 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
102 config 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
109 config 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
116 config 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
123 config 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
131 config 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
138 config 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
147 config 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.