在 2021/10/26 9:47, Chao Yu 写道:
On 2021/10/26 9:38, Wang Xiaojun wrote:
在 2021/10/26 8:29, Chao Yu 写道:
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,
In fact, it's not causing problems at this time.
During the code review, I found that this was not logically reasonable.
This parameter(sbi->cur_cp) can be set to 1 only after successful
replication.
IIRC, after mirroring checkpoint (cp_backuped == 1), we choose to
always update
CP #0 area, so once SPO occurs, at least there is one valid checkpoint
can be kept
in CP #1 area. [1]
[1] 81bad9d11ea5 ("fsck.f2fs: write checkpoint with OPU mode")
Thanks,
Got it. thanks
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