• Chao Yu's avatar
    f2fs: fix to avoid f2fs_bug_on() in dec_valid_node_count() · 4d17e6fe
    Chao Yu authored
    As Yanming reported in bugzilla:
    
    https://bugzilla.kernel.org/show_bug.cgi?id=215897
    
    I have encountered a bug in F2FS file system in kernel v5.17.
    
    The kernel should enable CONFIG_KASAN=y and CONFIG_KASAN_INLINE=y. You can
    reproduce the bug by running the following commands:
    
    The kernel message is shown below:
    
    kernel BUG at fs/f2fs/f2fs.h:2511!
    Call Trace:
     f2fs_remove_inode_page+0x2a2/0x830
     f2fs_evict_inode+0x9b7/0x1510
     evict+0x282/0x4e0
     do_unlinkat+0x33a/0x540
     __x64_sys_unlinkat+0x8e/0xd0
     do_syscall_64+0x3b/0x90
     entry_SYSCALL_64_after_hwframe+0x44/0xae
    
    The root cause is: .total_valid_block_count or .total_valid_node_count
    could fuzzed to zero, then once dec_valid_node_count() was called, it
    will cause BUG_ON(), this patch fixes to print warning info and set
    SBI_NEED_FSCK into CP instead of panic.
    
    Cc: stable@vger.kernel.org
    Reported-by: default avatarMing Yan <yanming@tju.edu.cn>
    Signed-off-by: default avatarChao Yu <chao.yu@oppo.com>
    Signed-off-by: default avatarJaegeuk Kim <jaegeuk@kernel.org>
    4d17e6fe
f2fs.h 147 KB