{
        spin_lock(&sbi->stat_lock);
 
-       f2fs_bug_on(sbi, !sbi->total_valid_block_count);
-       f2fs_bug_on(sbi, !sbi->total_valid_node_count);
+       if (unlikely(!sbi->total_valid_block_count ||
+                       !sbi->total_valid_node_count)) {
+               f2fs_warn(sbi, "dec_valid_node_count: inconsistent block counts, total_valid_block:%u, total_valid_node:%u",
+                         sbi->total_valid_block_count,
+                         sbi->total_valid_node_count);
+               set_sbi_flag(sbi, SBI_NEED_FSCK);
+       } else {
+               sbi->total_valid_block_count--;
+               sbi->total_valid_node_count--;
+       }
 
-       sbi->total_valid_node_count--;
-       sbi->total_valid_block_count--;
        if (sbi->reserved_blocks &&
                sbi->current_reserved_blocks < sbi->reserved_blocks)
                sbi->current_reserved_blocks++;