On 04/09, Sheng Yong wrote: > > > On 2024/4/9 2:34, Jaegeuk Kim wrote: > > 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? > > > We could add assert here, but I think it's not that necessary: > 1. rebuild_checkpoint is only called by resize, and new_sb is copied directly > from original sb without any changes of these basic attributes. > 2. for now, new_sb has the same attributes/members with the original one. If > those attributes are allowed to get changed in the future, the assert needs > to be removed. > So how about adding a new helper to check and show the difference between the > new and original sb?
So, why do we need to change this? > > many thanks, > shengyong > > > > > > 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