Re: [PATCH v2 0/4] f2fs: fix panic issue in small capacity device

From: Jaegeuk Kim
Date: Mon Feb 26 2024 - 20:13:47 EST


On 02/26, Zhiguo Niu wrote:
> Dear Chao,
>
> On Fri, Feb 23, 2024 at 10:38 AM Chao Yu <chao@xxxxxxxxxx> wrote:
> >
> > On 2024/2/23 10:01, Zhiguo Niu wrote:
> > >
> > >
> > > On Thu, Feb 22, 2024 at 8:30 PM Chao Yu <chao@xxxxxxxxxx <mailto:chao@xxxxxxxxxx>> wrote:
> > >
> > > On 2024/2/7 10:01, Zhiguo Niu wrote:
> > > > A panic issue happened in a reboot test in small capacity device
> > > > as following:
> > > > 1.The device size is 64MB, and main area has 24 segments, and
> > > > CONFIG_F2FS_CHECK_FS is not enabled.
> > > > 2.There is no any free segments left shown in free_segmap_info,
> > > > then another write request cause get_new_segment get a out-of-bound
> > > > segment with segno 24.
> > > > 3.panic happen in update_sit_entry because access invalid bitmap
> > > > pointer.
> > >
> > > Zhiguo,
> > >
> > > Can you please try below patch to see whether it can fix your problem?
> > >
> > > https://lore.kernel.org/linux-f2fs-devel/20240222121851.883141-3-chao@xxxxxxxxxx <https://lore.kernel.org/linux-f2fs-devel/20240222121851.883141-3-chao@xxxxxxxxxx>
> > >
> > > Thanks,
> > >
> > >
> > > Dear Chao,
> > > I need to coordinate the testing resources. The previous testing has been stopped because it was fixed with the current patch. In addition, this requires stability testing to reproduce, so it will take a certain amount of time. If there is any situation, I will tell you in time.
> >
> > Zhiguo, thank you!
>
> We tested this patch this weekend on the previous version with
> problem, and it can not reproduce panic issues,
> so this patch should fix the original issue.
> thanks!

Hey, do you guys please point out which patches were tested without what?
IOWs, which patches should I remove and keep Chao's patch?

>
> >
> > BTW, I've tested this patch for a while, and it looks there is no issue w/
> > FAULT_NO_SEGMENT fault injection is on.
> >
> > > btw, Why can’t I see this patch on your branch^^?
> > > https://git.kernel.org/pub/scm/linux/kernel/git/chao/linux.git/log/?h=dev-test <https://git.kernel.org/pub/scm/linux/kernel/git/chao/linux.git/log/?h=dev-test>
> >
> > Too lazy to push patches in time, will do it in this weekend. :P
> >
> > > thanks!
> > >
> > >
> > > >
> > > > More detail shown in following patch sets.
> > > > The three patches are splited here because the modifications are
> > > > relatively independent and more readable.
> > > >
> > > > ---
> > > > Changes of v2: stop checkpoint when get a out-of-bound segment
> > > > ---
> > > >
> > > > Zhiguo Niu (4):
> > > > f2fs: correct counting methods of free_segments in __set_inuse
> > > > f2fs: fix panic issue in update_sit_entry
> > > > f2fs: enhance judgment conditions of GET_SEGNO
> > > > f2fs: stop checkpoint when get a out-of-bounds segment
> > > >
> > > > fs/f2fs/file.c | 7 ++++++-
> > > > fs/f2fs/segment.c | 21 ++++++++++++++++-----
> > > > fs/f2fs/segment.h | 7 ++++---
> > > > include/linux/f2fs_fs.h | 1 +
> > > > 4 files changed, 27 insertions(+), 9 deletions(-)
> > > >
> > >