f2fs: make sure zoned device GC to use FG_GC in shortage of free section
authorDaeho Jeong <daehojeong@google.com>
Thu, 29 May 2025 22:25:32 +0000 (15:25 -0700)
committerJaegeuk Kim <jaegeuk@kernel.org>
Mon, 23 Jun 2025 22:13:01 +0000 (22:13 +0000)
We already use FG_GC when we have free sections under
gc_boost_zoned_gc_percent. So, let's make it consistent.

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

index 3cb5242f4ddfe9eb6a6e81e74aaefe95589a4e8a..439f0153c24ee5de01fa9eec338eefbc65d96d97 100644 (file)
@@ -144,7 +144,7 @@ do_gc:
                                gc_control.one_time;
 
                /* foreground GC was been triggered via f2fs_balance_fs() */
-               if (foreground)
+               if (foreground && !f2fs_sb_has_blkzoned(sbi))
                        sync_mode = false;
 
                gc_control.init_gc_type = sync_mode ? FG_GC : BG_GC;
index ae1223ef648feb5a6893e6b42c3e609229c85cb7..dad5a92b7e705f5358fdd2b1a0833d54932f1eb7 100644 (file)
@@ -455,7 +455,8 @@ void f2fs_balance_fs(struct f2fs_sb_info *sbi, bool need)
        } else {
                struct f2fs_gc_control gc_control = {
                        .victim_segno = NULL_SEGNO,
-                       .init_gc_type = BG_GC,
+                       .init_gc_type = f2fs_sb_has_blkzoned(sbi) ?
+                               FG_GC : BG_GC,
                        .no_bg_gc = true,
                        .should_migrate_blocks = false,
                        .err_gc_skipped = false,