Linux-libre 5.3.12-gnu
[librecmc/linux-libre.git] / drivers / staging / erofs / Kconfig
1 # SPDX-License-Identifier: GPL-2.0
2
3 config EROFS_FS
4         tristate "EROFS filesystem support"
5         depends on BLOCK
6         help
7           EROFS(Enhanced Read-Only File System) is a lightweight
8           read-only file system with modern designs (eg. page-sized
9           blocks, inline xattrs/data, etc.) for scenarios which need
10           high-performance read-only requirements, eg. firmwares in
11           mobile phone or LIVECDs.
12
13           It also provides VLE compression support, focusing on
14           random read improvements, keeping relatively lower
15           compression ratios, which is useful for high-performance
16           devices with limited memory and ROM space.
17
18           If unsure, say N.
19
20 config EROFS_FS_DEBUG
21         bool "EROFS debugging feature"
22         depends on EROFS_FS
23         help
24           Print EROFS debugging messages and enable more BUG_ONs
25           which check the filesystem consistency aggressively.
26
27           For daily use, say N.
28
29 config EROFS_FS_XATTR
30         bool "EROFS extended attributes"
31         depends on EROFS_FS
32         default y
33         help
34           Extended attributes are name:value pairs associated with inodes by
35           the kernel or by users (see the attr(5) manual page, or visit
36           <http://acl.bestbits.at/> for details).
37
38           If unsure, say N.
39
40 config EROFS_FS_POSIX_ACL
41         bool "EROFS Access Control Lists"
42         depends on EROFS_FS_XATTR
43         select FS_POSIX_ACL
44         default y
45         help
46           Posix Access Control Lists (ACLs) support permissions for users and
47           groups beyond the owner/group/world scheme.
48
49           To learn more about Access Control Lists, visit the POSIX ACLs for
50           Linux website <http://acl.bestbits.at/>.
51
52           If you don't know what Access Control Lists are, say N.
53
54 config EROFS_FS_SECURITY
55         bool "EROFS Security Labels"
56         depends on EROFS_FS_XATTR
57         help
58           Security labels provide an access control facility to support Linux
59           Security Models (LSMs) accepted by AppArmor, SELinux, Smack and TOMOYO
60           Linux. This option enables an extended attribute handler for file
61           security labels in the erofs filesystem, so that it requires enabling
62           the extended attribute support in advance.
63
64           If you are not using a security module, say N.
65
66 config EROFS_FS_USE_VM_MAP_RAM
67         bool "EROFS VM_MAP_RAM Support"
68         depends on EROFS_FS
69         help
70           use vm_map_ram/vm_unmap_ram instead of vmap/vunmap.
71
72           If you don't know what these are, say N.
73
74 config EROFS_FAULT_INJECTION
75         bool "EROFS fault injection facility"
76         depends on EROFS_FS
77         help
78           Test EROFS to inject faults such as ENOMEM, EIO, and so on.
79           If unsure, say N.
80
81 config EROFS_FS_IO_MAX_RETRIES
82         int "EROFS IO Maximum Retries"
83         depends on EROFS_FS
84         default "5"
85         help
86           Maximum retry count of IO Errors.
87
88           If unsure, leave the default value (5 retries, 6 IOs at most).
89
90 config EROFS_FS_ZIP
91         bool "EROFS Data Compresssion Support"
92         depends on EROFS_FS
93         select LZ4_DECOMPRESS
94         help
95           Currently we support LZ4 VLE Compression only.
96           Play at your own risk.
97
98           If you don't want to use compression feature, say N.
99
100 config EROFS_FS_CLUSTER_PAGE_LIMIT
101         int "EROFS Cluster Pages Hard Limit"
102         depends on EROFS_FS_ZIP
103         range 1 256
104         default "1"
105         help
106           Indicates VLE compressed pages hard limit of a
107           compressed cluster.
108
109           For example, if files of a image are compressed
110           into 8k-unit, the hard limit should not be less
111           than 2. Otherwise, the image cannot be mounted
112           correctly on this kernel.
113
114 choice
115         prompt "EROFS VLE Data Decompression mode"
116         depends on EROFS_FS_ZIP
117         default EROFS_FS_ZIP_CACHE_BIPOLAR
118         help
119           EROFS supports three options for VLE decompression.
120           "In-place Decompression Only" consumes the minimum memory
121           with lowest random read.
122
123           "Bipolar Cached Decompression" consumes the maximum memory
124           with highest random read.
125
126           If unsure, select "Bipolar Cached Decompression"
127
128 config EROFS_FS_ZIP_NO_CACHE
129         bool "In-place Decompression Only"
130         help
131           Read compressed data into page cache and do in-place
132           decompression directly.
133
134 config EROFS_FS_ZIP_CACHE_UNIPOLAR
135         bool "Unipolar Cached Decompression"
136         help
137           For each request, it caches the last compressed page
138           for further reading.
139           It still decompresses in place for the rest compressed pages.
140
141 config EROFS_FS_ZIP_CACHE_BIPOLAR
142         bool "Bipolar Cached Decompression"
143         help
144           For each request, it caches the both end compressed pages
145           for further reading.
146           It still decompresses in place for the rest compressed pages.
147
148           Recommended for performance priority.
149
150 endchoice
151