Althrough old and new sb have the same value for now, it would be better to build new checkpoint according to new sb.
Signed-off-by: Sheng Yong <shengy...@oppo.com> --- fsck/resize.c | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/fsck/resize.c b/fsck/resize.c index 049ddd3..1b4ae85 100644 --- a/fsck/resize.c +++ b/fsck/resize.c @@ -481,7 +481,7 @@ static void rebuild_checkpoint(struct f2fs_sb_info *sbi, set_cp(overprov_segment_count, get_cp(rsvd_segment_count)); set_cp(overprov_segment_count, get_cp(overprov_segment_count) + - 2 * get_sb(segs_per_sec)); + 2 * get_newsb(segs_per_sec)); DBG(0, "Info: Overprovision ratio = %.3lf%%\n", c.new_overprovision); DBG(0, "Info: Overprovision segments = %u (GC reserved = %u)\n", @@ -551,11 +551,12 @@ static void rebuild_checkpoint(struct f2fs_sb_info *sbi, cpu_to_le32(crc); /* Write a new checkpoint in the other set */ - new_cp_blk_no = old_cp_blk_no = get_sb(cp_blkaddr); + old_cp_blk_no = get_sb(cp_blkaddr); + new_cp_blk_no = get_newsb(cp_blkaddr); if (sbi->cur_cp == 2) old_cp_blk_no += 1 << get_sb(log_blocks_per_seg); else - new_cp_blk_no += 1 << get_sb(log_blocks_per_seg); + new_cp_blk_no += 1 << get_newsb(log_blocks_per_seg); /* write first cp */ ret = dev_write_block(new_cp, new_cp_blk_no++); -- 2.40.1 _______________________________________________ Linux-f2fs-devel mailing list Linux-f2fs-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/linux-f2fs-devel