From 2b4b86066baa7c21813c7daa43baf0c8961016a2 Mon Sep 17 00:00:00 2001 From: Sheng Yong Date: Sat, 4 Feb 2017 14:45:59 +0800 Subject: [PATCH] resize.f2fs: correct checkpoint_ver of new checkpoint resize.f2fs rebuilds a new checkpoint at the new position. Its checkpoint_ver should be increased. Signed-off-by: Shuoran Liu Signed-off-by: Weichao Guo Signed-off-by: Sheng Yong Signed-off-by: Jaegeuk Kim --- fsck/resize.c | 2 ++ 1 file changed, 2 insertions(+) diff --git a/fsck/resize.c b/fsck/resize.c index 29cb1c0..4791f74 100644 --- a/fsck/resize.c +++ b/fsck/resize.c @@ -415,6 +415,7 @@ static void rebuild_checkpoint(struct f2fs_sb_info *sbi, struct f2fs_super_block *new_sb, unsigned int offset) { struct f2fs_checkpoint *cp = F2FS_CKPT(sbi); + unsigned long long cp_ver = get_cp(checkpoint_ver); struct f2fs_checkpoint *new_cp; struct f2fs_super_block *sb = F2FS_RAW_SUPER(sbi); unsigned int free_segment_count, new_segment_count; @@ -476,6 +477,7 @@ static void rebuild_checkpoint(struct f2fs_sb_info *sbi, memcpy(new_cp, cp, (unsigned char *)cp->sit_nat_version_bitmap - (unsigned char *)cp); + new_cp->checkpoint_ver = cpu_to_le64(cp_ver + 1); crc = f2fs_cal_crc32(F2FS_SUPER_MAGIC, new_cp, CHECKSUM_OFFSET); *((__le32 *)((unsigned char *)new_cp + CHECKSUM_OFFSET)) = cpu_to_le32(crc); -- 2.7.4