]> git.ipfire.org Git - thirdparty/kernel/stable.git/commit
erofs: fix metabuf leak in inode xattr initialization
authorJia Zhu <zhujia.zj@bytedance.com>
Wed, 20 May 2026 04:46:07 +0000 (12:46 +0800)
committerGao Xiang <hsiangkao@linux.alibaba.com>
Wed, 20 May 2026 06:53:14 +0000 (14:53 +0800)
commit79b09c54c6563df9846ca3094bcfd72082c3e1d7
tree43a5298c6b875e1aee1dd14653cc44acd1abfe76
parent649932fc3815eda2f24eb4de4b3a5e94886ee0b9
erofs: fix metabuf leak in inode xattr initialization

commit bb88e8da0025 ("erofs: use meta buffers for xattr operations")
converted xattr operations to use on-stack erofs_buf instances.
erofs_init_inode_xattrs() uses such a metabuf while reading the inline
xattr header and shared xattr id array.

Some error paths after erofs_read_metabuf() leave through out_unlock
without dropping the metabuf, so the folio reference can leak.

Consolidate the cleanup at out_unlock. erofs_put_metabuf() is a
no-op if no folio has been acquired, and this keeps all paths after
taking EROFS_I_BL_XATTR_BIT covered by a single cleanup site.

Fixes: bb88e8da0025 ("erofs: use meta buffers for xattr operations")
Signed-off-by: Jia Zhu <zhujia.zj@bytedance.com>
Reviewed-by: Gao Xiang <hsiangkao@linux.alibaba.com>
Fixes: bb88e8da0025 ("erofs: use meta buffers for xattr operations")
Signed-off-by: Gao Xiang <hsiangkao@linux.alibaba.com>
fs/erofs/xattr.c