On 04/08, Sheng Yong wrote:
> Althrough old and new sb have the same value for now, it would be better
> to build new checkpoint according to new sb.

May need to add assert, if they're different?

> 
> 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

Reply via email to