Re: [PATCH v2] erofs: fix folio reuse from a different address_space in erofs_bread()

From: binglei wang

Date: Sat Oct 03 2026 - 06:30:31 EST


Thanks, happy National Day.

Gao Xiang <xiang@xxxxxxxxxx> 于2026年10月3日周六 00:01写道:


>
> On Thu, Oct 01, 2026 at 02:01:31PM +0800, Binglei Wang wrote:
> > erofs_bread() reuses a cached folio on page index match without
> > checking folio->mapping.
> >
> > xattr.c calls erofs_init_metabuf() twice on the same buffer without
> > erofs_put_metabuf(); the two in_metabox sources differ, so buf->mapping
> > can switch while buf->page still belongs to the old address_space.
> > The next erofs_bread() then reads the wrong mapping, dropping shared
> > xattrs with METABOX.
> >
> > We require folio->mapping == buf->mapping in the reuse check; otherwise
> > drop the cached folio and re-read via the slow path.
> >
> > Fixes: 414091322c63 ("erofs: implement metadata compression")
> > Cc: Bo Liu (OpenAnolis) <liubo03@xxxxxxxxxx>
> > Signed-off-by: Binglei Wang <l3b2w1@xxxxxxxxx>
>
> I applied this patch with the updated subject:
>
> erofs: fix xattrs handling when metadata compression is used
>
> Reviewed-by: Gao Xiang <xiang@xxxxxxxxxx>
>
> Thanks,
> Gao Xiang