[PATCH v5 0/6] erofs: cleanup of xattr handling

From: Jingbo Xu
Date: Wed May 31 2023 - 22:43:56 EST


changes since v4:
- patch 1: make conversions from erofs_read_metabuf() in xattr.c
to "erofs_init_metabuf() + erofs_bread()" a separate patch
- patch 6: add "bool copy" function parameter to erofs_xattr_body(), and
thus make erofs_xattr_namematch() and erofs_xattr_copy() inlined
inside erofs_xattr_body()

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

v4: https://lore.kernel.org/all/20230531031330.3504-1-jefflexu@xxxxxxxxxxxxxxxxx/
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 (6):
erofs: convert erofs_read_metabuf() to erofs_bread() for xattr
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 | 673 ++++++++++++++++++-----------------------------
1 file changed, 254 insertions(+), 419 deletions(-)

--
2.19.1.6.gb485710b