0001 # SPDX-License-Identifier: GPL-2.0-only
0002 config UBIFS_FS
0003 tristate "UBIFS file system support"
0004 select CRC16
0005 select CRC32
0006 select CRYPTO if UBIFS_FS_ADVANCED_COMPR
0007 select CRYPTO if UBIFS_FS_LZO
0008 select CRYPTO if UBIFS_FS_ZLIB
0009 select CRYPTO if UBIFS_FS_ZSTD
0010 select CRYPTO_LZO if UBIFS_FS_LZO
0011 select CRYPTO_DEFLATE if UBIFS_FS_ZLIB
0012 select CRYPTO_ZSTD if UBIFS_FS_ZSTD
0013 select CRYPTO_HASH_INFO
0014 select UBIFS_FS_XATTR if FS_ENCRYPTION
0015 select FS_ENCRYPTION_ALGS if FS_ENCRYPTION
0016 depends on MTD_UBI
0017 help
0018 UBIFS is a file system for flash devices which works on top of UBI.
0019
0020 if UBIFS_FS
0021
0022 config UBIFS_FS_ADVANCED_COMPR
0023 bool "Advanced compression options"
0024 help
0025 This option allows to explicitly choose which compressions, if any,
0026 are enabled in UBIFS. Removing compressors means inability to read
0027 existing file systems.
0028
0029 If unsure, say 'N'.
0030
0031 config UBIFS_FS_LZO
0032 bool "LZO compression support" if UBIFS_FS_ADVANCED_COMPR
0033 default y
0034 help
0035 LZO compressor is generally faster than zlib but compresses worse.
0036 Say 'Y' if unsure.
0037
0038 config UBIFS_FS_ZLIB
0039 bool "ZLIB compression support" if UBIFS_FS_ADVANCED_COMPR
0040 default y
0041 help
0042 Zlib compresses better than LZO but it is slower. Say 'Y' if unsure.
0043
0044 config UBIFS_FS_ZSTD
0045 bool "ZSTD compression support" if UBIFS_FS_ADVANCED_COMPR
0046 depends on UBIFS_FS
0047 default y
0048 help
0049 ZSTD compresses is a big win in speed over Zlib and
0050 in compression ratio over LZO. Say 'Y' if unsure.
0051
0052 config UBIFS_ATIME_SUPPORT
0053 bool "Access time support"
0054 default n
0055 help
0056 Originally UBIFS did not support atime, because it looked like a bad idea due
0057 increased flash wear. This option adds atime support and it is disabled by default
0058 to preserve the old behavior. If you enable this option, UBIFS starts updating atime,
0059 which means that file-system read operations will cause writes (inode atime
0060 updates). This may affect file-system performance and increase flash device wear,
0061 so be careful. How often atime is updated depends on the selected strategy:
0062 strictatime is the "heavy", relatime is "lighter", etc.
0063
0064 If unsure, say 'N'
0065
0066 config UBIFS_FS_XATTR
0067 bool "UBIFS XATTR support"
0068 default y
0069 help
0070 Saying Y here includes support for extended attributes (xattrs).
0071 Xattrs are name:value pairs associated with inodes by
0072 the kernel or by users (see the attr(5) manual page).
0073
0074 If unsure, say Y.
0075
0076 config UBIFS_FS_SECURITY
0077 bool "UBIFS Security Labels"
0078 depends on UBIFS_FS_XATTR
0079 default y
0080 help
0081 Security labels provide an access control facility to support Linux
0082 Security Models (LSMs) accepted by AppArmor, SELinux, Smack and TOMOYO
0083 Linux. This option enables an extended attribute handler for file
0084 security labels in the ubifs filesystem, so that it requires enabling
0085 the extended attribute support in advance.
0086
0087 If you are not using a security module, say N.
0088
0089 config UBIFS_FS_AUTHENTICATION
0090 bool "UBIFS authentication support"
0091 select KEYS
0092 select CRYPTO_HMAC
0093 select SYSTEM_DATA_VERIFICATION
0094 help
0095 Enable authentication support for UBIFS. This feature offers protection
0096 against offline changes for both data and metadata of the filesystem.
0097 If you say yes here you should also select a hashing algorithm such as
0098 sha256, these are not selected automatically since there are many
0099 different options.
0100
0101 endif # UBIFS_FS