[PATCH v4 0/5] erofs: cleanup of xattr handling

From: Jingbo Xu
Date: Tue May 30 2023 - 23:13:39 EST



changes since v3:
- patch 1: make a unified erofs_xattr_iter_fixup() API with newly
introduced "bool nospan" argument; call erofs_init_metabuf() and
erofs_bread() separately instead of erofs_read_metabuf()
- patch 2: avoid duplicated strlen() calculation in erofs_getxattr(); no
need zeroing other fields when initializing 'struct erofs_xattr_iter'
- patch 4: don't explode 'struct erofs_xattr_iter' with inode/getxattr
fields; instead pass inode/getxattr parameters through function
parameters of erofs_iter_[inline|shared]_xattr()
- patch 5: don't explode 'struct erofs_xattr_iter' with remaining field;
instead calculate and check the remaining inside
erofs_iter_inline_xattr()

changes since v2:
- rebase to v6.4-rc2
- passes xattr tests (erofs/019,020,021) of erofs-utils [1]

[1] https://git.kernel.org/pub/scm/linux/kernel/git/xiang/erofs-utils.git/log/?h=experimental-tests

v3: https://lore.kernel.org/lkml/20230518024551.123990-1-jefflexu@xxxxxxxxxxxxxxxxx/
v2: https://lore.kernel.org/all/20230330082910.125374-1-jefflexu@xxxxxxxxxxxxxxxxx/
v1: https://lore.kernel.org/all/20230323000949.57608-1-jefflexu@xxxxxxxxxxxxxxxxx/

Jingbo Xu (5):
erofs: enhance erofs_xattr_iter_fixup() helper
erofs: unify xattr_iter structures
erofs: make the size of read data stored in buffer_ofs
erofs: unify inline/share xattr iterators for listxattr/getxattr
erofs: use separate xattr parsers for listxattr/getxattr

fs/erofs/xattr.c | 683 ++++++++++++++++++-----------------------------
1 file changed, 265 insertions(+), 418 deletions(-)

--
2.19.1.6.gb485710b