Messages in this thread Patch in this message | | | From | Chao Yu <> | Subject | [PATCH] f2fs-tools: calculate cp_ver correctly | Date | Thu, 2 Mar 2017 11:39:09 +0800 |
| |
It needs to check CP_CRC_RECOVERY_FLAG during cp_ver calculation.
Signed-off-by: Chao Yu <yuchao0@huawei.com> --- 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
| |