Message ID | 1706523684-24540-1-git-send-email-zhiguo.niu@unisoc.com (mailing list archive) |
---|---|
Headers | show |
Series | f2fs: fix panic issue in small capacity device | expand |
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? And, we need f2fs_stop_checkpoint() at the end? > > 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
On Tue, Feb 6, 2024 at 11:15 AM Jaegeuk Kim <jaegeuk@kernel.org> 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