1# SPDX-License-Identifier: GPL-2.0-only 2 3config EROFS_FS 4 tristate "EROFS filesystem support" 5 depends on BLOCK 6 select CACHEFILES if EROFS_FS_ONDEMAND 7 select CRC32 8 select CRYPTO if EROFS_FS_ZIP_ACCEL 9 select CRYPTO_DEFLATE if EROFS_FS_ZIP_ACCEL 10 select FS_IOMAP 11 select LZ4_DECOMPRESS if EROFS_FS_ZIP 12 select NETFS_SUPPORT if EROFS_FS_ONDEMAND 13 select XXHASH if EROFS_FS_XATTR 14 select XZ_DEC if EROFS_FS_ZIP_LZMA 15 select XZ_DEC_MICROLZMA if EROFS_FS_ZIP_LZMA 16 select ZLIB_INFLATE if EROFS_FS_ZIP_DEFLATE 17 select ZSTD_DECOMPRESS if EROFS_FS_ZIP_ZSTD 18 help 19 EROFS (Enhanced Read-Only File System) is a lightweight read-only 20 file system with modern designs (e.g. no buffer heads, inline 21 xattrs/data, chunk-based deduplication, multiple devices, etc.) for 22 scenarios which need high-performance read-only solutions, e.g. 23 smartphones with Android OS, LiveCDs and high-density hosts with 24 numerous containers; 25 26 It also provides transparent compression and deduplication support to 27 improve storage density and maintain relatively high compression 28 ratios, and it implements in-place decompression to temporarily reuse 29 page cache for compressed data using proper strategies, which is 30 quite useful for ensuring guaranteed end-to-end runtime decompression 31 performance under extreme memory pressure without extra cost. 32 33 See the documentation at <file:Documentation/filesystems/erofs.rst> 34 and the web pages at <https://erofs.docs.kernel.org> for more details. 35 36 If unsure, say N. 37 38config EROFS_FS_DEBUG 39 bool "EROFS debugging feature" 40 depends on EROFS_FS 41 help 42 Print debugging messages and enable more BUG_ONs which check 43 filesystem consistency and find potential issues aggressively, 44 which can be used for Android eng build, for example. 45 46 For daily use, say N. 47 48config EROFS_FS_XATTR 49 bool "EROFS extended attributes" 50 depends on EROFS_FS 51 default y 52 help 53 Extended attributes are name:value pairs associated with inodes by 54 the kernel or by users (see the attr(5) manual page, or visit 55 <http://acl.bestbits.at/> for details). 56 57 If unsure, say N. 58 59config EROFS_FS_POSIX_ACL 60 bool "EROFS Access Control Lists" 61 depends on EROFS_FS_XATTR 62 select FS_POSIX_ACL 63 default y 64 help 65 Posix Access Control Lists (ACLs) support permissions for users and 66 groups beyond the owner/group/world scheme. 67 68 To learn more about Access Control Lists, visit the POSIX ACLs for 69 Linux website <http://acl.bestbits.at/>. 70 71 If you don't know what Access Control Lists are, say N. 72 73config EROFS_FS_SECURITY 74 bool "EROFS Security Labels" 75 depends on EROFS_FS_XATTR 76 default y 77 help 78 Security labels provide an access control facility to support Linux 79 Security Models (LSMs) accepted by AppArmor, SELinux, Smack and TOMOYO 80 Linux. This option enables an extended attribute handler for file 81 security labels in the erofs filesystem, so that it requires enabling 82 the extended attribute support in advance. 83 84 If you are not using a security module, say N. 85 86config EROFS_FS_BACKED_BY_FILE 87 bool "File-backed EROFS filesystem support" 88 depends on EROFS_FS 89 default y 90 help 91 This allows EROFS to use filesystem image files directly, without 92 the intercession of loopback block devices or likewise. It is 93 particularly useful for container images with numerous blobs and 94 other sandboxes, where loop devices behave intricately. It can also 95 be used to simplify error-prone lifetime management of unnecessary 96 virtual block devices. 97 98 Note that this feature, along with ongoing fanotify pre-content 99 hooks, will eventually replace "EROFS over fscache." 100 101 If you don't want to enable this feature, say N. 102 103config EROFS_FS_ZIP 104 bool "EROFS Data Compression Support" 105 depends on EROFS_FS 106 default y 107 help 108 Enable transparent compression support for EROFS file systems. 109 110 If you don't want to enable compression feature, say N. 111 112config EROFS_FS_ZIP_LZMA 113 bool "EROFS LZMA compressed data support" 114 depends on EROFS_FS_ZIP 115 help 116 Saying Y here includes support for reading EROFS file systems 117 containing LZMA compressed data, specifically called microLZMA. It 118 gives better compression ratios than the default LZ4 format, at the 119 expense of more CPU overhead. 120 121 If unsure, say N. 122 123config EROFS_FS_ZIP_DEFLATE 124 bool "EROFS DEFLATE compressed data support" 125 depends on EROFS_FS_ZIP 126 help 127 Saying Y here includes support for reading EROFS file systems 128 containing DEFLATE compressed data. It gives better compression 129 ratios than the default LZ4 format, while it costs more CPU 130 overhead. 131 132 DEFLATE support is an experimental feature for now and so most 133 file systems will be readable without selecting this option. 134 135 If unsure, say N. 136 137config EROFS_FS_ZIP_ZSTD 138 bool "EROFS Zstandard compressed data support" 139 depends on EROFS_FS_ZIP 140 help 141 Saying Y here includes support for reading EROFS file systems 142 containing Zstandard compressed data. It gives better compression 143 ratios than the default LZ4 format, while it costs more CPU 144 overhead. 145 146 Zstandard support is an experimental feature for now and so most 147 file systems will be readable without selecting this option. 148 149 If unsure, say N. 150 151config EROFS_FS_ZIP_ACCEL 152 bool "EROFS hardware decompression support" 153 depends on EROFS_FS_ZIP 154 help 155 Saying Y here includes hardware accelerator support for reading 156 EROFS file systems containing compressed data. It gives better 157 decompression speed than the software-implemented decompression, and 158 it costs lower CPU overhead. 159 160 Hardware accelerator support is an experimental feature for now and 161 file systems are still readable without selecting this option. 162 163 If unsure, say N. 164 165config EROFS_FS_ONDEMAND 166 bool "EROFS fscache-based on-demand read support (deprecated)" 167 depends on EROFS_FS 168 select FSCACHE 169 select CACHEFILES_ONDEMAND 170 help 171 This permits EROFS to use fscache-backed data blobs with on-demand 172 read support. 173 174 It is now deprecated and scheduled to be removed from the kernel 175 after fanotify pre-content hooks are landed. 176 177 If unsure, say N. 178 179config EROFS_FS_PCPU_KTHREAD 180 bool "EROFS per-cpu decompression kthread workers" 181 depends on EROFS_FS_ZIP 182 help 183 Saying Y here enables per-CPU kthread workers pool to carry out 184 async decompression for low latencies on some architectures. 185 186 If unsure, say N. 187 188config EROFS_FS_PCPU_KTHREAD_HIPRI 189 bool "EROFS high priority per-CPU kthread workers" 190 depends on EROFS_FS_ZIP && EROFS_FS_PCPU_KTHREAD 191 default y 192 help 193 This permits EROFS to configure per-CPU kthread workers to run 194 at higher priority. 195 196 If unsure, say N. 197