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

Chao Yu
2024-02-26T06:48:22Z

On 2024/2/26 11:25, Zhiguo Niu wrote:
> Dear Chao,
>
> On Fri, Feb 23, 2024 at 10:38 AM Chao Yu <chao@kernel.org> wrote:
>>
>> On 2024/2/23 10:01, Zhiguo Niu wrote:
>>>
>>>
>>> On Thu, Feb 22, 2024 at 8:30 PM Chao Yu <chao@kernel.org <mailto:chao@kernel.org>> 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@kernel.org <https://lore.kernel.org/linux-f2fs-devel/20240222121851.883141-3-chao@kernel.org>
>>>
>>> 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.

Zhiguo,

Thanks a lot for the test!

Do you mind replying to original patch below tag?

Tested-by: Zhiguo Niu <zhiguo.niu@unisoc.com>

Thanks,

> thanks！
>
>>
>> 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(-)
>>> >
>>>