]> git.ipfire.org Git - thirdparty/kernel/stable.git/commitdiff
f2fs: clear SBI_POR_DOING before initing inmem curseg
authorSheng Yong <shengyong@oppo.com>
Tue, 30 Dec 2025 16:22:51 +0000 (11:22 -0500)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Thu, 8 Jan 2026 09:14:59 +0000 (10:14 +0100)
[ Upstream commit f88c7904b5c7e35ab8037e2a59e10d80adf6fd7e ]

SBI_POR_DOING can be cleared after recovery is completed, so that
changes made before recovery can be persistent, and subsequent
errors can be recorded into cp/sb.

Signed-off-by: Song Feng <songfeng@oppo.com>
Signed-off-by: Yongpeng Yang <yangyongpeng1@oppo.com>
Signed-off-by: Sheng Yong <shengyong@oppo.com>
Reviewed-by: Chao Yu <chao@kernel.org>
Signed-off-by: Jaegeuk Kim <jaegeuk@kernel.org>
Stable-dep-of: be112e7449a6 ("f2fs: fix to propagate error from f2fs_enable_checkpoint()")
Signed-off-by: Sasha Levin <sashal@kernel.org>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
fs/f2fs/super.c

index a85268b2978d5c786531e179af1cd6983b54f0ab..1ead438735b019b4c92d31a7ade2853131f79978 100644 (file)
@@ -4804,13 +4804,13 @@ reset_checkpoint:
        if (err)
                goto free_meta;
 
+       /* f2fs_recover_fsync_data() cleared this already */
+       clear_sbi_flag(sbi, SBI_POR_DOING);
+
        err = f2fs_init_inmem_curseg(sbi);
        if (err)
                goto sync_free_meta;
 
-       /* f2fs_recover_fsync_data() cleared this already */
-       clear_sbi_flag(sbi, SBI_POR_DOING);
-
        if (test_opt(sbi, DISABLE_CHECKPOINT)) {
                err = f2fs_disable_checkpoint(sbi);
                if (err)