[PATCH] fsck.f2fs: enable fix_on when CP_RESIZEFS_FLAG is set in auto-fix mode

From: Daeho Jeong

Date: Thu Oct 01 2026 - 14:08:16 EST


From: Daeho Jeong <daehojeong@xxxxxxxxxx>

Commit 9a31cefa2966 ("fsck.f2fs: allow fsck to fix issues with online
resize due to SPO") added logic in sanity_check_ckpt() to recalculate
and fix user_block_count when CP_RESIZEFS_FLAG is set after a sudden
power-off during online resize.

However, sanity_check_ckpt() calls f2fs_should_proceed() and checks
c.fix_on before repairing user_block_count, while f2fs_should_proceed()
did not check CP_RESIZEFS_FLAG when setting c.fix_on in auto_fix (-a) or
preen (-p) mode. As a result, running 'fsck.f2fs -a' after an SPO during
online shrink leaves c.fix_on unset and fails to repair the checkpoint.

Check CP_RESIZEFS_FLAG in f2fs_should_proceed() so that auto-fix and
preen modes properly enable c.fix_on and recover the filesystem.

Fixes: 9a31cefa2966 ("fsck.f2fs: allow fsck to fix issues with online resize due to SPO")
Signed-off-by: Daeho Jeong <daehojeong@xxxxxxxxxx>
---
fsck/mount.c | 1 +
1 file changed, 1 insertion(+)

diff --git a/fsck/mount.c b/fsck/mount.c
index 2fd8e1c..8479ed1 100644
--- a/fsck/mount.c
+++ b/fsck/mount.c
@@ -1515,6 +1515,7 @@ static int f2fs_should_proceed(struct f2fs_super_block *sb, u32 flag)
if (!c.fix_on && (c.auto_fix || c.preen_mode)) {
if (flag & CP_FSCK_FLAG ||
flag & CP_DISABLED_FLAG ||
+ flag & CP_RESIZEFS_FLAG ||
flag & CP_QUOTA_NEED_FSCK_FLAG ||
c.invalid_sb & SB_NEED_FIX ||
(exist_qf_ino(sb) && (flag & CP_ERROR_FLAG))) {
--
2.56.0.rc1.315.gc6ed9934b7-goog