Merge tag 'libnvdimm-for-5.15' of git://git.kernel.org/pub/scm/linux/kernel/git/nvdim...
[linux-2.6-microblaze.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 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
30 config 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
43 config 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
53 config 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
64 config 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
78 config 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
86 config 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
94 config 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
101 config 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
108 config 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
115 config 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
122 config 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
130 config 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
137 config 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.