6e135baed8
In this series, we've implemented transparent compression experimentally. It supports LZO and LZ4, but will add more later as we investigate in the field more. At this point, the feature doesn't expose compressed space to user directly in order to guarantee potential data updates later to the space. Instead, the main goal is to reduce data writes to flash disk as much as possible, resulting in extending disk life time as well as relaxing IO congestion. Alternatively, we're also considering to add ioctl() to reclaim compressed space and show it to user after putting the immutable bit. Enhancement: - add compression support - avoid unnecessary locks in quota ops - harden power-cut scenario for zoned block devices - use private bio_set to avoid IO congestion - replace GC mutex with rwsem to serialize callers Bug fix: - fix dentry consistency and memory corruption in rename()'s error case - fix wrong swap extent reports - fix casefolding bugs - change lock coverage to avoid deadlock - avoid GFP_KERNEL under f2fs_lock_op And, we've cleaned up sysfs entries to prepare no debugfs. -----BEGIN PGP SIGNATURE----- iQIzBAABCgAdFiEE00UqedjCtOrGVvQiQBSofoJIUNIFAl4zInwACgkQQBSofoJI UNL4Tg/+JBbVEFa3IUBGMdbjfgd/g0Jye++iMAYYGRWT6Ll/IGcHRV9NunITjgWU mBZqdhI28kXeiGCcewB1ZvivjLx22X4n6yevHk2B5A6PNe9IDCHi0HOAhJJHkjPH ecv2L+vX3Oj4y0+H7JNz9Fo3OIPJvMPtCQWlg1z+VQyhB85zNP7fZlvvIY4tG8yw ERo0YNotLqwcF1BxCwNbAhV3aJGDxar+MI//yNzpiwDX7IptVpqestfcoIYc9kKL 4kSWRyEIGwcuIeyoM6aofGS9t4Z/Oe/gdqcxNr6l5n0Q/tMTpb4b/fJFGNr6RRx9 X9NQo8flkQb2DEIOP0DVpO2aPebzsVtzg3LZUOLA83+wCHfwINtHai2Dy2zDJ2my BrVdou8fe2oxoaYihJg/Tz9cd0nA/6mZArtpYvDImAmX/xuGOvVk9zZkXNwc9nVX EyVzy0vW4lA6gAIJ95aG6DDhJcAtVoy0MhBRWG92Pufxhn9aW24AV63ChWUf9DRx /3RqpMAuQ3UC2gOxXKKnr54lsdhUIMn/y9sjROkVvQ1BvgRVxO8I4GFvMHMKv9pR 9KXiVRdzyYERyoL4+MF7A2zTnw+RHL4RVILa85p2ALGy2jQ1UuNUQi0BN9x2u1v8 S1ifNNX8SwOP+83ImFJhhn3HybpFQ45aLO3F7ZjKBQAnufJu+xw= =zeoY -----END PGP SIGNATURE----- Merge tag 'f2fs-for-5.6' of git://git.kernel.org/pub/scm/linux/kernel/git/jaegeuk/f2fs Pull f2fs updates from Jaegeuk Kim: "In this series, we've implemented transparent compression experimentally. It supports LZO and LZ4, but will add more later as we investigate in the field more. At this point, the feature doesn't expose compressed space to user directly in order to guarantee potential data updates later to the space. Instead, the main goal is to reduce data writes to flash disk as much as possible, resulting in extending disk life time as well as relaxing IO congestion. Alternatively, we're also considering to add ioctl() to reclaim compressed space and show it to user after putting the immutable bit. Enhancements: - add compression support - avoid unnecessary locks in quota ops - harden power-cut scenario for zoned block devices - use private bio_set to avoid IO congestion - replace GC mutex with rwsem to serialize callers Bug fixes: - fix dentry consistency and memory corruption in rename()'s error case - fix wrong swap extent reports - fix casefolding bugs - change lock coverage to avoid deadlock - avoid GFP_KERNEL under f2fs_lock_op And, we've cleaned up sysfs entries to prepare no debugfs" * tag 'f2fs-for-5.6' of git://git.kernel.org/pub/scm/linux/kernel/git/jaegeuk/f2fs: (31 commits) f2fs: fix race conditions in ->d_compare() and ->d_hash() f2fs: fix dcache lookup of !casefolded directories f2fs: Add f2fs stats to sysfs f2fs: delete duplicate information on sysfs nodes f2fs: change to use rwsem for gc_mutex f2fs: update f2fs document regarding to fsync_mode f2fs: add a way to turn off ipu bio cache f2fs: code cleanup for f2fs_statfs_project() f2fs: fix miscounted block limit in f2fs_statfs_project() f2fs: show the CP_PAUSE reason in checkpoint traces f2fs: fix deadlock allocating bio_post_read_ctx from mempool f2fs: remove unneeded check for error allocating bio_post_read_ctx f2fs: convert inline_dir early before starting rename f2fs: fix memleak of kobject f2fs: fix to add swap extent correctly f2fs: run fsck when getting bad inode during GC f2fs: support data compression f2fs: free sysfs kobject f2fs: declare nested quota_sem and remove unnecessary sems f2fs: don't put new_page twice in f2fs_rename ...
121 lines
3.6 KiB
Plaintext
121 lines
3.6 KiB
Plaintext
# SPDX-License-Identifier: GPL-2.0-only
|
|
config F2FS_FS
|
|
tristate "F2FS filesystem support"
|
|
depends on BLOCK
|
|
select NLS
|
|
select CRYPTO
|
|
select CRYPTO_CRC32
|
|
select F2FS_FS_XATTR if FS_ENCRYPTION
|
|
select FS_ENCRYPTION_ALGS if FS_ENCRYPTION
|
|
help
|
|
F2FS is based on Log-structured File System (LFS), which supports
|
|
versatile "flash-friendly" features. The design has been focused on
|
|
addressing the fundamental issues in LFS, which are snowball effect
|
|
of wandering tree and high cleaning overhead.
|
|
|
|
Since flash-based storages show different characteristics according to
|
|
the internal geometry or flash memory management schemes aka FTL, F2FS
|
|
and tools support various parameters not only for configuring on-disk
|
|
layout, but also for selecting allocation and cleaning algorithms.
|
|
|
|
If unsure, say N.
|
|
|
|
config F2FS_STAT_FS
|
|
bool "F2FS Status Information"
|
|
depends on F2FS_FS
|
|
default y
|
|
help
|
|
/sys/kernel/debug/f2fs/ contains information about all the partitions
|
|
mounted as f2fs. Each file shows the whole f2fs information.
|
|
|
|
/sys/kernel/debug/f2fs/status includes:
|
|
- major filesystem information managed by f2fs currently
|
|
- average SIT information about whole segments
|
|
- current memory footprint consumed by f2fs.
|
|
|
|
config F2FS_FS_XATTR
|
|
bool "F2FS extended attributes"
|
|
depends on F2FS_FS
|
|
default y
|
|
help
|
|
Extended attributes are name:value pairs associated with inodes by
|
|
the kernel or by users (see the attr(5) manual page for details).
|
|
|
|
If unsure, say N.
|
|
|
|
config F2FS_FS_POSIX_ACL
|
|
bool "F2FS Access Control Lists"
|
|
depends on F2FS_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.
|
|
|
|
If you don't know what Access Control Lists are, say N
|
|
|
|
config F2FS_FS_SECURITY
|
|
bool "F2FS Security Labels"
|
|
depends on F2FS_FS_XATTR
|
|
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 f2fs filesystem, so that it requires enabling
|
|
the extended attribute support in advance. In particular you need this
|
|
option if you use the setcap command to assign initial process capabi-
|
|
lities to executables (the security.* extended attributes).
|
|
|
|
If you are not using a security module, say N.
|
|
|
|
config F2FS_CHECK_FS
|
|
bool "F2FS consistency checking feature"
|
|
depends on F2FS_FS
|
|
help
|
|
Enables BUG_ONs which check the filesystem consistency in runtime.
|
|
|
|
If you want to improve the performance, say N.
|
|
|
|
config F2FS_IO_TRACE
|
|
bool "F2FS IO tracer"
|
|
depends on F2FS_FS
|
|
depends on FUNCTION_TRACER
|
|
help
|
|
F2FS IO trace is based on a function trace, which gathers process
|
|
information and block IO patterns in the filesystem level.
|
|
|
|
If unsure, say N.
|
|
|
|
config F2FS_FAULT_INJECTION
|
|
bool "F2FS fault injection facility"
|
|
depends on F2FS_FS
|
|
help
|
|
Test F2FS to inject faults such as ENOMEM, ENOSPC, and so on.
|
|
|
|
If unsure, say N.
|
|
|
|
config F2FS_FS_COMPRESSION
|
|
bool "F2FS compression feature"
|
|
depends on F2FS_FS
|
|
help
|
|
Enable filesystem-level compression on f2fs regular files,
|
|
multiple back-end compression algorithms are supported.
|
|
|
|
config F2FS_FS_LZO
|
|
bool "LZO compression support"
|
|
depends on F2FS_FS_COMPRESSION
|
|
select LZO_COMPRESS
|
|
select LZO_DECOMPRESS
|
|
default y
|
|
help
|
|
Support LZO compress algorithm, if unsure, say Y.
|
|
|
|
config F2FS_FS_LZ4
|
|
bool "LZ4 compression support"
|
|
depends on F2FS_FS_COMPRESSION
|
|
select LZ4_COMPRESS
|
|
select LZ4_DECOMPRESS
|
|
default y
|
|
help
|
|
Support LZ4 compress algorithm, if unsure, say Y.
|