f2fs: allow dirty sections with zero valid block for checkpoint disabled
authorDaeho Jeong <daehojeong@google.com>
Fri, 10 May 2024 13:49:08 +0000 (06:49 -0700)
committerJaegeuk Kim <jaegeuk@kernel.org>
Sat, 11 May 2024 00:39:07 +0000 (00:39 +0000)
Following the semantic for dirty segments in checkpoint disabled mode,
apply the same rule to dirty sections.

Signed-off-by: Daeho Jeong <daehojeong@google.com>
Signed-off-by: Jaegeuk Kim <jaegeuk@kernel.org>
fs/f2fs/segment.c

index ab3e9a6e9c96c5aef4c2d9c50c3fcff96f3e1b16..a0ce3d080f80a1662fe6444c99cfe2e991e5184e 100644 (file)
@@ -771,8 +771,10 @@ static void __locate_dirty_segment(struct f2fs_sb_info *sbi, unsigned int segno,
                        block_t valid_blocks =
                                get_valid_blocks(sbi, segno, true);
 
-                       f2fs_bug_on(sbi, unlikely(!valid_blocks ||
-                                       valid_blocks == CAP_BLKS_PER_SEC(sbi)));
+                       f2fs_bug_on(sbi,
+                               (!is_sbi_flag_set(sbi, SBI_CP_DISABLED) &&
+                               !valid_blocks) ||
+                               valid_blocks == CAP_BLKS_PER_SEC(sbi));
 
                        if (!IS_CURSEC(sbi, secno))
                                set_bit(secno, dirty_i->dirty_secmap);