[PATCH v4 0/2] erofs: introduce xattr name bloom filter

From: Jingbo Xu
Date: Thu Jul 13 2023 - 23:10:51 EST


changes since v3:
- patch 1: add "Reviewed-by" tag (Gao Xiang)
- patch 2: make CONFIG_EROFS_FS_XATTR select CONFIG_XXHASH (Gao Xiang)

changes since v2:
- patch 1: polish the commit message; introduce xattr_filter_reserved in
on-disk superblock; remove EROFS_XATTR_FILTER_MASK (Gao Xiang)

changes since RFC:
- the number of hash functions is 1, and now it's implemented as:
xxh32(name, strlen(name), EROFS_XATTR_FILTER_SEED + index),
where the constant magic number EROFS_XATTR_FILTER_SEED [*] is used to
give a better spread for the mapping. (Alexander Larsson)
Refer to patch 1 for more details.
- fix the value of EROFS_FEATURE_COMPAT_XATTR_BLOOM; rename
EROFS_XATTR_BLOOM_* to EROFS_XATTR_FILTER_* (Gao Xiang)
- pass all tests in erofs-utils (MKFS_OPTIONS="--xattr-filter" make
check)

[*] https://lore.kernel.org/all/74a8a369-c3b0-b338-fa8f-fdd7c252efaf@xxxxxxxxxxxxxxxxx/
RFC: https://lore.kernel.org/all/20230621083209.116024-1-jefflexu@xxxxxxxxxxxxxxxxx/
v2: https://lore.kernel.org/all/20230705070427.92579-1-jefflexu@xxxxxxxxxxxxxxxxx/
v3: https://lore.kernel.org/all/20230712115123.33712-1-jefflexu@xxxxxxxxxxxxxxxxx/

Jingbo Xu (2):
erofs: update on-disk format for xattr name filter
erofs: boost negative xattr lookup with bloom filter

fs/erofs/Kconfig | 1 +
fs/erofs/erofs_fs.h | 10 ++++++++--
fs/erofs/internal.h | 3 +++
fs/erofs/super.c | 1 +
fs/erofs/xattr.c | 13 +++++++++++++
5 files changed, 26 insertions(+), 2 deletions(-)

--
2.19.1.6.gb485710b