[GIT PULL] erofs updates for 6.4-rc1

From: Gao Xiang
Date: Mon Apr 24 2023 - 00:05:03 EST


Hi Linus,

Could you consider this pull request for 6.4-rc1?

In this cycle, sub-page block support for uncompressed files is
available. It's mainly used to enable golden 4k-block images on arm64
with 16/64k pages. In addition, end users could also use this feature
to build a manifest to directly refer to golden tar data.

Besides, long xattr name prefix support is also introduced in this
cycle to avoid too many xattrs with the same prefix (e.g. overlayfs
xattrs). It's useful for erofs + overlayfs combination (like Composefs
model): the image size is reduced by ~14% and runtime performance is
also slightly improved.

Others are random fixes and cleanups as usual. All commits have been
in -next for a while and currently there is only a minor merge conflict
with the vfs-idmapping tree [1]. Christian also mentioned this in the
related pull request.

Thanks,
Gao Xiang

[1] linux-next: manual merge of the erofs tree with the vfs-idmapping tree
https://lore.kernel.org/r/4f9fdec2-cc2a-4bc7-9ddc-87809395f493@xxxxxxxxxxxxx

The following changes since commit 09a9639e56c01c7a00d6c0ca63f4c7c41abe075d:

Linux 6.3-rc6 (2023-04-09 11:15:57 -0700)

are available in the Git repository at:

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

for you to fetch changes up to 745ed7d77834048879bf24088c94e5a6462b613f:

erofs: cleanup i_format-related stuffs (2023-04-17 01:15:55 +0800)

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

- Add sub-page block size support for uncompressed files;

- Support flattened block device for multi-blob images to be attached
into virtual machines (including cloud servers) and bare metals;

- Support long xattr name prefixes to optimize images with common
xattr namespaces (e.g. files with overlayfs xattrs) use cases;

- Various minor cleanups & fixes.

----------------------------------------------------------------
Gao Xiang (6):
erofs: tidy up EROFS on-disk naming
erofs: stop parsing non-compact HEAD index if clusterofs is invalid
erofs: keep meta inode into erofs_buf
erofs: get rid of z_erofs_fill_inode()
erofs: sunset erofs_dbg()
erofs: cleanup i_format-related stuffs

Jia Zhu (1):
erofs: support flattened block device for multi-blob images

Jingbo Xu (12):
erofs: avoid hardcoded blocksize for subpage block support
erofs: set block size to the on-disk block size
erofs: move several xattr helpers into xattr.c
erofs: rename init_inode_xattrs with erofs_ prefix
erofs: simplify erofs_xattr_generic_get()
erofs: initialize packed inode after root inode is assigned
erofs: move packed inode out of the compression part
erofs: introduce on-disk format for long xattr name prefixes
erofs: add helpers to load long xattr name prefixes
erofs: handle long xattr name prefixes properly
erofs: enable long extended attribute name prefixes
erofs: fix potential overflow calculating xattr_isize

Yue Hu (1):
erofs: don't warn ztailpacking feature anymore

Documentation/filesystems/erofs.rst | 4 +-
fs/erofs/data.c | 81 +++++++------
fs/erofs/decompressor.c | 6 +-
fs/erofs/decompressor_lzma.c | 4 +-
fs/erofs/dir.c | 25 ++--
fs/erofs/erofs_fs.h | 176 ++++++++++++++--------------
fs/erofs/fscache.c | 5 +-
fs/erofs/inode.c | 36 +++---
fs/erofs/internal.h | 73 +++++-------
fs/erofs/namei.c | 27 +++--
fs/erofs/super.c | 116 ++++++++++--------
fs/erofs/xattr.c | 227 +++++++++++++++++++++++++-----------
fs/erofs/xattr.h | 27 +----
fs/erofs/zdata.c | 25 ++--
fs/erofs/zmap.c | 166 ++++++++++++--------------
include/trace/events/erofs.h | 4 +-
16 files changed, 541 insertions(+), 461 deletions(-)