diff mbox

f2fs-tools: support CP_CRC_RECOVERY_FLAG check

Message ID 1504794297-150702-1-git-send-email-yunlong.song@huawei.com (mailing list archive)
State New, archived
Headers show

Commit Message

Yunlong Song Sept. 7, 2017, 2:24 p.m. UTC
Signed-off-by: Yunlong Song <yunlong.song@huawei.com>
---
 fsck/fsck.c  | 3 +++
 fsck/mount.c | 3 +++
 2 files changed, 6 insertions(+)

Comments

Chao Yu Sept. 11, 2017, 10:32 a.m. UTC | #1
Hi Yunlong,

Do we need to recover other flags?

Thanks,

On 2017/9/7 22:24, Yunlong Song wrote:
> Signed-off-by: Yunlong Song <yunlong.song@huawei.com>
> ---
>  fsck/fsck.c  | 3 +++
>  fsck/mount.c | 3 +++
>  2 files changed, 6 insertions(+)
> 
> diff --git a/fsck/fsck.c b/fsck/fsck.c
> index cb341ba..f63a609 100644
> --- a/fsck/fsck.c
> +++ b/fsck/fsck.c
> @@ -1786,6 +1786,9 @@ static void fix_checkpoint(struct f2fs_sb_info *sbi)
>  	set_cp(cp_pack_total_block_count, 8 + orphan_blks + get_sb(cp_payload));
>  
>  	flags = update_nat_bits_flags(sb, cp, flags);
> +
> +	if (is_set_ckpt_flags(cp, CP_CRC_RECOVERY_FLAG))
> +		flags |= CP_CRC_RECOVERY_FLAG;
>  	set_cp(ckpt_flags, flags);
>  
>  	set_cp(free_segment_count, get_free_segments(sbi));
> diff --git a/fsck/mount.c b/fsck/mount.c
> index 7a8aeae..0d77cce 100644
> --- a/fsck/mount.c
> +++ b/fsck/mount.c
> @@ -1902,6 +1902,9 @@ void write_checkpoint(struct f2fs_sb_info *sbi)
>  	set_cp(cp_pack_total_block_count, 8 + orphan_blks + get_sb(cp_payload));
>  
>  	flags = update_nat_bits_flags(sb, cp, flags);
> +
> +	if (is_set_ckpt_flags(cp, CP_CRC_RECOVERY_FLAG))
> +		flags |= CP_CRC_RECOVERY_FLAG;
>  	set_cp(ckpt_flags, flags);
>  
>  	crc = f2fs_cal_crc32(F2FS_SUPER_MAGIC, cp, CHECKSUM_OFFSET);
>
diff mbox

Patch

diff --git a/fsck/fsck.c b/fsck/fsck.c
index cb341ba..f63a609 100644
--- a/fsck/fsck.c
+++ b/fsck/fsck.c
@@ -1786,6 +1786,9 @@  static void fix_checkpoint(struct f2fs_sb_info *sbi)
 	set_cp(cp_pack_total_block_count, 8 + orphan_blks + get_sb(cp_payload));
 
 	flags = update_nat_bits_flags(sb, cp, flags);
+
+	if (is_set_ckpt_flags(cp, CP_CRC_RECOVERY_FLAG))
+		flags |= CP_CRC_RECOVERY_FLAG;
 	set_cp(ckpt_flags, flags);
 
 	set_cp(free_segment_count, get_free_segments(sbi));
diff --git a/fsck/mount.c b/fsck/mount.c
index 7a8aeae..0d77cce 100644
--- a/fsck/mount.c
+++ b/fsck/mount.c
@@ -1902,6 +1902,9 @@  void write_checkpoint(struct f2fs_sb_info *sbi)
 	set_cp(cp_pack_total_block_count, 8 + orphan_blks + get_sb(cp_payload));
 
 	flags = update_nat_bits_flags(sb, cp, flags);
+
+	if (is_set_ckpt_flags(cp, CP_CRC_RECOVERY_FLAG))
+		flags |= CP_CRC_RECOVERY_FLAG;
 	set_cp(ckpt_flags, flags);
 
 	crc = f2fs_cal_crc32(F2FS_SUPER_MAGIC, cp, CHECKSUM_OFFSET);