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

From: Zhiguo Niu
Date: Tue Feb 06 2024 - 00:58:26 EST


On Tue, Feb 6, 2024 at 11:15 AM Jaegeuk Kim <jaegeuk@xxxxxxxxxx> wrote:
>
> On 01/29, 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.
>
> The goal here is to stop f2fs when it hits no space to write anymore?
Do not let the system crash now , and add some sanity check to avoid
accessing illegal memory
> And, we need f2fs_stop_checkpoint() at the end?
I think it need indeed.
thanks!
>
> >
> > More detail shown in following three patches.
> > The three patches are splited here because the modifications are
> > relatively independent and more readable.
> >
> > Zhiguo Niu (3):
> > 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
> >
> > fs/f2fs/file.c | 7 ++++++-
> > fs/f2fs/segment.c | 9 ++++++---
> > fs/f2fs/segment.h | 7 ++++---
> > 3 files changed, 16 insertions(+), 7 deletions(-)
> >
> > --
> > 1.9.1