[GIT PULL] erofs updates for 6.5-rc1

From: Gao Xiang
Date: Mon Jun 26 2023 - 00:47:27 EST


Hi Linus,

Could you consider this pull request for 6.5-rc1?

No outstanding new feature available for this cycle. Most of these
commits are decompression cleanups which are part of the ongoing
development for subpage/folio compression support as well as xattr
cleanups for the upcoming xattr bloom filter optimization [1].

In addition, there are bugfixes to address some corner cases of
compressed images due to global data de-duplication and arm64 16k
pages.

All commits have been in -next for a while and no potential merge
conflict is observed.

Thanks,
Gao Xiang

[1] https://lore.kernel.org/r/20230621083209.116024-1-jefflexu@xxxxxxxxxxxxxxxxx

The following changes since commit 7877cb91f1081754a1487c144d85dc0d2e2e7fc4:

Linux 6.4-rc4 (2023-05-28 07:49:00 -0400)

are available in the Git repository at:

git://git.kernel.org/pub/scm/linux/kernel/git/xiang/erofs.git tags/erofs-for-6.5-rc1

for you to fetch changes up to 8241fdd3cdfe88e31a3de09a72b5bff661e4534a:

erofs: clean up zmap.c (2023-06-22 21:16:34 +0800)

----------------------------------------------------------------
Changes since last update:

- Fix rare I/O hang on deduplicated compressed images due to loop
hooked chains;

- Fix compact compression layout of 16k blocks on arm64 devices;

- Fix atomic context detection of async decompression;

- Decompression/Xattr code cleanups.

----------------------------------------------------------------
Gao Xiang (8):
erofs: allocate extra bvec pages directly instead of retrying
erofs: avoid on-stack pagepool directly passed by arguments
erofs: kill hooked chains to avoid loops on deduplicated compressed images
erofs: adapt managed inode operations into folios
erofs: use struct lockref to replace handcrafted approach
erofs: use poison pointer to replace the hard-coded address
erofs: fix compact 4B support for 16k block size
erofs: clean up zmap.c

Jingbo Xu (6):
erofs: convert erofs_read_metabuf() to erofs_bread() for xattr
erofs: use absolute position in xattr iterator
erofs: unify xattr_iter structures
erofs: make the size of read data stored in buffer_ofs
erofs: unify inline/shared xattr iterators for listxattr/getxattr
erofs: use separate xattr parsers for listxattr/getxattr

Sandeep Dhavale (1):
erofs: Fix detection of atomic context

Yangtao Li (1):
erofs: remove unnecessary goto

Yue Hu (3):
erofs: fold in z_erofs_decompress()
erofs: remove the member readahead from struct z_erofs_decompress_frontend
erofs: clean up z_erofs_pcluster_readmore()

fs/erofs/compress.h | 3 +-
fs/erofs/decompressor.c | 8 +-
fs/erofs/internal.h | 41 +--
fs/erofs/super.c | 69 +----
fs/erofs/utils.c | 86 +++----
fs/erofs/xattr.c | 670 +++++++++++++++++-------------------------------
fs/erofs/zdata.c | 269 +++++++++----------
fs/erofs/zmap.c | 75 +++---
8 files changed, 438 insertions(+), 783 deletions(-)