| # SPDX-License-Identifier: GPL-2.0-only |
| |
| config EROFS_FS |
| tristate "EROFS filesystem support" |
| depends on BLOCK |
| select FS_IOMAP |
| select LIBCRC32C |
| help |
| EROFS (Enhanced Read-Only File System) is a lightweight read-only |
| file system with modern designs (e.g. no buffer heads, inline |
| xattrs/data, chunk-based deduplication, multiple devices, etc.) for |
| scenarios which need high-performance read-only solutions, e.g. |
| smartphones with Android OS, LiveCDs and high-density hosts with |
| numerous containers; |
| |
| It also provides fixed-sized output compression support in order to |
| improve storage density as well as keep relatively higher compression |
| ratios and implements in-place decompression to reuse the file page |
| for compressed data temporarily with proper strategies, which is |
| quite useful to ensure guaranteed end-to-end runtime decompression |
| performance under extremely memory pressure without extra cost. |
| |
| See the documentation at <file:Documentation/filesystems/erofs.rst> |
| and the web pages at <https://erofs.docs.kernel.org> for more details. |
| |
| If unsure, say N. |
| |
| config EROFS_FS_DEBUG |
| bool "EROFS debugging feature" |
| depends on EROFS_FS |
| help |
| Print debugging messages and enable more BUG_ONs which check |
| filesystem consistency and find potential issues aggressively, |
| which can be used for Android eng build, for example. |
| |
| For daily use, say N. |
| |
| config EROFS_FS_XATTR |
| bool "EROFS extended attributes" |
| depends on EROFS_FS |
| select XXHASH |
| default y |
| help |
| Extended attributes are name:value pairs associated with inodes by |
| the kernel or by users (see the attr(5) manual page, or visit |
| <http://acl.bestbits.at/> for details). |
| |
| If unsure, say N. |
| |
| config EROFS_FS_POSIX_ACL |
| bool "EROFS Access Control Lists" |
| depends on EROFS_FS_XATTR |
| select FS_POSIX_ACL |
| default y |
| help |
| Posix Access Control Lists (ACLs) support permissions for users and |
| groups beyond the owner/group/world scheme. |
| |
| To learn more about Access Control Lists, visit the POSIX ACLs for |
| Linux website <http://acl.bestbits.at/>. |
| |
| If you don't know what Access Control Lists are, say N. |
| |
| config EROFS_FS_SECURITY |
| bool "EROFS Security Labels" |
| depends on EROFS_FS_XATTR |
| default y |
| help |
| Security labels provide an access control facility to support Linux |
| Security Models (LSMs) accepted by AppArmor, SELinux, Smack and TOMOYO |
| Linux. This option enables an extended attribute handler for file |
| security labels in the erofs filesystem, so that it requires enabling |
| the extended attribute support in advance. |
| |
| If you are not using a security module, say N. |
| |
| config EROFS_FS_BACKED_BY_FILE |
| bool "File-backed EROFS filesystem support" |
| depends on EROFS_FS |
| default y |
| help |
| This allows EROFS to use filesystem image files directly, without |
| the intercession of loopback block devices or likewise. It is |
| particularly useful for container images with numerous blobs and |
| other sandboxes, where loop devices behave intricately. It can also |
| be used to simplify error-prone lifetime management of unnecessary |
| virtual block devices. |
| |
| Note that this feature, along with ongoing fanotify pre-content |
| hooks, will eventually replace "EROFS over fscache." |
| |
| If you don't want to enable this feature, say N. |
| |
| config EROFS_FS_ZIP |
| bool "EROFS Data Compression Support" |
| depends on EROFS_FS |
| select LZ4_DECOMPRESS |
| default y |
| help |
| Enable fixed-sized output compression for EROFS. |
| |
| If you don't want to enable compression feature, say N. |
| |
| config EROFS_FS_ZIP_LZMA |
| bool "EROFS LZMA compressed data support" |
| depends on EROFS_FS_ZIP |
| select XZ_DEC |
| select XZ_DEC_MICROLZMA |
| help |
| Saying Y here includes support for reading EROFS file systems |
| containing LZMA compressed data, specifically called microLZMA. It |
| gives better compression ratios than the default LZ4 format, at the |
| expense of more CPU overhead. |
| |
| If unsure, say N. |
| |
| config EROFS_FS_ZIP_DEFLATE |
| bool "EROFS DEFLATE compressed data support" |
| depends on EROFS_FS_ZIP |
| select ZLIB_INFLATE |
| help |
| Saying Y here includes support for reading EROFS file systems |
| containing DEFLATE compressed data. It gives better compression |
| ratios than the default LZ4 format, while it costs more CPU |
| overhead. |
| |
| DEFLATE support is an experimental feature for now and so most |
| file systems will be readable without selecting this option. |
| |
| If unsure, say N. |
| |
| config EROFS_FS_ZIP_ZSTD |
| bool "EROFS Zstandard compressed data support" |
| depends on EROFS_FS_ZIP |
| select ZSTD_DECOMPRESS |
| help |
| Saying Y here includes support for reading EROFS file systems |
| containing Zstandard compressed data. It gives better compression |
| ratios than the default LZ4 format, while it costs more CPU |
| overhead. |
| |
| Zstandard support is an experimental feature for now and so most |
| file systems will be readable without selecting this option. |
| |
| If unsure, say N. |
| |
| config EROFS_FS_ONDEMAND |
| bool "EROFS fscache-based on-demand read support (deprecated)" |
| depends on EROFS_FS |
| select NETFS_SUPPORT |
| select FSCACHE |
| select CACHEFILES |
| select CACHEFILES_ONDEMAND |
| help |
| This permits EROFS to use fscache-backed data blobs with on-demand |
| read support. |
| |
| It is now deprecated and scheduled to be removed from the kernel |
| after fanotify pre-content hooks are landed. |
| |
| If unsure, say N. |
| |
| config EROFS_FS_PCPU_KTHREAD |
| bool "EROFS per-cpu decompression kthread workers" |
| depends on EROFS_FS_ZIP |
| help |
| Saying Y here enables per-CPU kthread workers pool to carry out |
| async decompression for low latencies on some architectures. |
| |
| If unsure, say N. |
| |
| config EROFS_FS_PCPU_KTHREAD_HIPRI |
| bool "EROFS high priority per-CPU kthread workers" |
| depends on EROFS_FS_ZIP && EROFS_FS_PCPU_KTHREAD |
| default y |
| help |
| This permits EROFS to configure per-CPU kthread workers to run |
| at higher priority. |
| |
| If unsure, say N. |