[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <3vutme7tf24cqdfbf4wjti22u6jfxjewe6gt4ufppp4xplyb5e@xls7aozstoqr>
Date: Sun, 2 Mar 2025 21:13:45 +0300
From: Fedor Pchelkin <pchelkin@...ras.ru>
To: Gao Xiang <hsiangkao@...ux.alibaba.com>
Cc: Alexey Panov <apanov@...ralinux.ru>, stable@...r.kernel.org,
Greg Kroah-Hartman <gregkh@...uxfoundation.org>, Max Kellermann <max.kellermann@...os.com>,
lvc-project@...uxtesting.org, syzbot+de04e06b28cfecf2281c@...kaller.appspotmail.com,
syzbot+c8c8238b394be4a1087d@...kaller.appspotmail.com, Chao Yu <chao@...nel.org>, linux-kernel@...r.kernel.org,
Yue Hu <huyue2@...lpad.com>, syzbot+4fc98ed414ae63d1ada2@...kaller.appspotmail.com,
Jeffle Xu <jefflexu@...ux.alibaba.com>, Gao Xiang <xiang@...nel.org>, linux-erofs@...ts.ozlabs.org
Subject: Re: [PATCH 6.1 1/2] erofs: handle overlapped pclusters out of
crafted images properly
On Mon, 03. Mar 01:41, Gao Xiang wrote:
> > > diff --git a/fs/erofs/zdata.c b/fs/erofs/zdata.c
> > > index 94e9e0bf3bbd..ac01c0ede7f7 100644
> >
> > I'm looking at the diff of upstream commit and the first thing it does
> > is to remove zeroing out the folio/page private field here:
> >
> > // upstream commit 9e2f9d34dd12 ("erofs: handle overlapped pclusters out of crafted images properly")
> > @@ -1450,7 +1451,6 @@ static void z_erofs_fill_bio_vec(struct bio_vec *bvec,
> > * file-backed folios will be used instead.
> > */
> > if (folio->private == (void *)Z_EROFS_PREALLOCATED_PAGE) {
> > - folio->private = 0;
> > tocache = true;
> > goto out_tocache;
> > }
> >
> > while in 6.1.129 the corresponding fragment seems untouched with the
> > backport patch. Is it intended?
>
> Yes, because it was added in
> commit 2080ca1ed3e4 ("erofs: tidy up `struct z_erofs_bvec`")
> and dropped again.
>
> But for Linux 6.6.y and 6.1.y, we don't need to backport
> 2080ca1ed3e4.
Thanks for overall clarification, Gao!
My concern was that in 6.1 and 6.6 there is still a pattern at that
place, not directly related to 2080ca1ed3e4 ("erofs: tidy up
`struct z_erofs_bvec`"):
1. checking ->private against Z_EROFS_PREALLOCATED_PAGE
2. zeroing out ->private if the previous check holds true
// 6.1/6.6 fragment
if (page->private == Z_EROFS_PREALLOCATED_PAGE) {
WRITE_ONCE(pcl->compressed_bvecs[nr].page, page);
set_page_private(page, 0);
tocache = true;
goto out_tocache;
}
while the upstream patch changed the situation. If it's okay then no
remarks from me. Sorry for the noise..
Powered by blists - more mailing lists