[<prev] [next>] [<thread-prev] [day] [month] [year] [list]
Message-ID: <CAHJ8P3KnG6OmjeCq2JE6z-xXVbqjVU=pR+3A9Fz6qgELkeq90Q@mail.gmail.com>
Date: Mon, 11 Mar 2024 15:26:07 +0800
From: Zhiguo Niu <niuzhiguo84@...il.com>
To: Chao Yu <chao@...nel.org>
Cc: Zhiguo Niu <zhiguo.niu@...soc.com>, jaegeuk@...nel.org,
linux-f2fs-devel@...ts.sourceforge.net, linux-kernel@...r.kernel.org,
ke.wang@...soc.com, hongyu.jin@...soc.com
Subject: Re: [PATCH 1/2] f2fs: fix to remove f2fs_bug_on in add_bio_entry
On Mon, Mar 11, 2024 at 11:54 AM Chao Yu <chao@...nel.org> wrote:
>
> On 2024/3/8 18:12, Zhiguo Niu wrote:
> > add_bio_entry should not trigger system panic when bio_add_page fail,
> > fix to remove it.
> >
> > Fixes: 0b20fcec8651 ("f2fs: cache global IPU bio")
> > Signed-off-by: Zhiguo Niu <zhiguo.niu@...soc.com>
> > ---
> > fs/f2fs/data.c | 6 ++++--
> > 1 file changed, 4 insertions(+), 2 deletions(-)
> >
> > diff --git a/fs/f2fs/data.c b/fs/f2fs/data.c
> > index d9494b5..f8ae684 100644
> > --- a/fs/f2fs/data.c
> > +++ b/fs/f2fs/data.c
> > @@ -759,8 +759,10 @@ static void add_bio_entry(struct f2fs_sb_info *sbi, struct bio *bio,
> > be->bio = bio;
> > bio_get(bio);
> >
> > - if (bio_add_page(bio, page, PAGE_SIZE, 0) != PAGE_SIZE)
> > - f2fs_bug_on(sbi, 1);
> > + if (bio_add_page(bio, page, PAGE_SIZE, 0) != PAGE_SIZE) {
> > + bio_put(bio);
>
> I didn't get it, why new created bio has no space to store one page?
>
> Thanks,
Dear Chao,
I got what you mean.
We are doing bio merge optimization in bio_add_page.
After looking at all the locations where bio_add_page is called,
and think it is unreasonable to panic the system if bio_add_page fails.
but it is not impossible to panic in the current flow about bio_add_page.
so keeping it as is is a good choice.
thanks!
> > + return;
> > + }
> >
> > f2fs_down_write(&io->bio_list_lock);
> > list_add_tail(&be->list, &io->bio_list);
Powered by blists - more mailing lists