1# SPDX-License-Identifier: GPL-2.0
2
3config 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
20config 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
29config 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
40config 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
54config 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
66config 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
74config 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
81config EROFS_FS_ZIP
82	bool "EROFS Data Compresssion Support"
83	depends on EROFS_FS
84	help
85	  Currently we support VLE Compression only.
86	  Play at your own risk.
87
88	  If you don't want to use compression feature, say N.
89
90config EROFS_FS_CLUSTER_PAGE_LIMIT
91	int "EROFS Cluster Pages Hard Limit"
92	depends on EROFS_FS_ZIP
93	range 1 256
94	default "1"
95	help
96	  Indicates VLE compressed pages hard limit of a
97	  compressed cluster.
98
99	  For example, if files of a image are compressed
100	  into 8k-unit, the hard limit should not be less
101	  than 2. Otherwise, the image cannot be mounted
102	  correctly on this kernel.
103
104choice
105	prompt "EROFS VLE Data Decompression mode"
106	depends on EROFS_FS_ZIP
107	default EROFS_FS_ZIP_CACHE_BIPOLAR
108	help
109	  EROFS supports three options for VLE decompression.
110	  "In-place Decompression Only" consumes the minimum memory
111	  with lowest random read.
112
113	  "Bipolar Cached Decompression" consumes the maximum memory
114	  with highest random read.
115
116	  If unsure, select "Bipolar Cached Decompression"
117
118config EROFS_FS_ZIP_NO_CACHE
119	bool "In-place Decompression Only"
120	help
121	  Read compressed data into page cache and do in-place
122	  decompression directly.
123
124config EROFS_FS_ZIP_CACHE_UNIPOLAR
125	bool "Unipolar Cached Decompression"
126	help
127	  For each request, it caches the last compressed page
128	  for further reading.
129	  It still decompresses in place for the rest compressed pages.
130
131config EROFS_FS_ZIP_CACHE_BIPOLAR
132	bool "Bipolar Cached Decompression"
133	help
134	  For each request, it caches the both end compressed pages
135	  for further reading.
136	  It still decompresses in place for the rest compressed pages.
137
138	  Recommended for performance priority.
139
140endchoice
141
142