[PATCH] f2fs-tools: calculate cp_ver correctly

From: Chao Yu
Date: Wed Mar 01 2017 - 22:42:23 EST


It needs to check CP_CRC_RECOVERY_FLAG during cp_ver calculation.

Signed-off-by: Chao Yu <yuchao0@xxxxxxxxxx>
---
include/f2fs_fs.h | 5 ++++-
1 file changed, 4 insertions(+), 1 deletion(-)

diff --git a/include/f2fs_fs.h b/include/f2fs_fs.h
index 057adf39f6a9..a92011b83ff5 100644
--- a/include/f2fs_fs.h
+++ b/include/f2fs_fs.h
@@ -1089,10 +1089,13 @@ static inline __le64 get_cp_crc(struct f2fs_checkpoint *cp)
{
u_int64_t cp_ver = get_cp(checkpoint_ver);
size_t crc_offset = get_cp(checksum_offset);
+ unsigned int ckpt_flags = le32_to_cpu(cp->ckpt_flags);
+
u_int32_t crc = le32_to_cpu(*(__le32 *)((unsigned char *)cp +
crc_offset));

- cp_ver |= ((u_int64_t)crc << 32);
+ if (ckpt_flags & CP_CRC_RECOVERY_FLAG)
+ cp_ver |= ((u_int64_t)crc << 32);
return cpu_to_le64(cp_ver);
}

--
2.8.2.295.g3f1c1d0