erofs: boost negative xattr lookup with bloom filter
authorJingbo Xu <jefflexu@linux.alibaba.com>
Sat, 22 Jul 2023 09:45:38 +0000 (17:45 +0800)
committerGao Xiang <hsiangkao@linux.alibaba.com>
Fri, 11 Aug 2023 04:11:44 +0000 (12:11 +0800)
commitfd73a4395d477ae134f319f7368a9f8a6264fd8b
tree1cac2d7b88971fa8513ac6454cbe0bc6770d5df7
parent3f339920175c871ac63b4ea179117da7518618fd
erofs: boost negative xattr lookup with bloom filter

Optimise the negative xattr lookup with bloom filter.

The bit value for the bloom filter map has a reverse semantics for
compatibility.  That is, the bit value of 0 indicates existence, while
the bit value of 1 indicates the absence of corresponding xattr.

The initial version is _only_ enabled when xattr_filter_reserved is
zero.  The filter map internals may change in the future, in which case
the reserved flag will be set non-zero and we don't need bothering the
compatible bits again at that time.  For now disable the optimization if
this reserved flag is non-zero.

Signed-off-by: Jingbo Xu <jefflexu@linux.alibaba.com>
Reviewed-by: Gao Xiang <hsiangkao@linux.alibaba.com>
Reviewed-by: Chao Yu <chao@kernel.org>
Link: https://lore.kernel.org/r/20230722094538.11754-3-jefflexu@linux.alibaba.com
Signed-off-by: Gao Xiang <hsiangkao@linux.alibaba.com>
fs/erofs/Kconfig
fs/erofs/internal.h
fs/erofs/super.c
fs/erofs/xattr.c