0d442ce0b3
Although fscache is still described as "General Filesystem Caching" for network filesystems and other things such as ISO9660 filesystems, it has actually become a part of netfslib recently, which was unexpected at the time when "EROFS over fscache" proposed (2021) since EROFS is entirely a disk filesystem and the dependency is redundant. Mark it deprecated and it will be removed after "fanotify pre-content hooks" lands, which will provide the same functionality for EROFS. Reviewed-by: Sandeep Dhavale <dhavale@google.com> Reviewed-by: Chao Yu <chao@kernel.org> Signed-off-by: Gao Xiang <hsiangkao@linux.alibaba.com> Link: https://lore.kernel.org/r/20240830032840.3783206-4-hsiangkao@linux.alibaba.com
181 lines
5.7 KiB
Plaintext
181 lines
5.7 KiB
Plaintext
# 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.
|