On 2021/10/25 20:09, Wang Xiaojun wrote:
If sbi->cur_cp is 2 and the duplicate_checkpoint function returns
in advance because sbi->cp_backuped is set to true, we cannot set
sbi->cur_cp to 1.
Hmmm, in previous implementation, what problem we will encounter, and
what's the root cause?
Thanks,
Signed-off-by: Wang Xiaojun <[email protected]>
---
fsck/fsck.c | 3 ---
fsck/mount.c | 5 ++---
2 files changed, 2 insertions(+), 6 deletions(-)
diff --git a/fsck/fsck.c b/fsck/fsck.c
index 110c1ec..aa77a34 100644
--- a/fsck/fsck.c
+++ b/fsck/fsck.c
@@ -2383,9 +2383,6 @@ static void fix_checkpoints(struct f2fs_sb_info *sbi)
{
/* copy valid checkpoint to its mirror position */
duplicate_checkpoint(sbi);
-
- /* repair checkpoint at CP #0 position */
- sbi->cur_cp = 1;
fix_checkpoint(sbi);
}
diff --git a/fsck/mount.c b/fsck/mount.c
index c928a15..295170e 100644
--- a/fsck/mount.c
+++ b/fsck/mount.c
@@ -2998,6 +2998,8 @@ void duplicate_checkpoint(struct f2fs_sb_info *sbi)
ASSERT(ret >= 0);
sbi->cp_backuped = 1;
+ /* repair checkpoint at CP #0 position */
+ sbi->cur_cp = 1;
MSG(0, "Info: Duplicate valid checkpoint to mirror position "
"%llu -> %llu\n", src, dst);
@@ -3098,9 +3100,6 @@ void write_checkpoints(struct f2fs_sb_info *sbi)
{
/* copy valid checkpoint to its mirror position */
duplicate_checkpoint(sbi);
-
- /* repair checkpoint at CP #0 position */
- sbi->cur_cp = 1;
write_checkpoint(sbi);
}
_______________________________________________
Linux-f2fs-devel mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/linux-f2fs-devel