Hm. Would this be what @uplinkr might have encountered?
On Mon, Apr 14, 2025 at 4:13 AM Chao Yu via Linux-f2fs-devel <linux-f2fs-devel@lists.sourceforge.net> wrote: > > w/ below testcase, resize will generate a corrupted image which > contains inconsistent metadata: > > touch img > truncate -s $((512*1024*1024*1024)) img > mkfs.f2fs -f img $((256*1024*1024)) > resize.f2fs -s img -t $((1024*1024*1024)) > mount img /mnt/f2fs > > [ 31.725200] F2FS-fs (loop0): Wrong bitmap size: sit: 192, sit_blk_cnt:4762 > [ 31.728441] F2FS-fs (loop0): Failed to get valid F2FS checkpoint > > The root cause is safe mode (via -s option) is not compatible > w/ expand resize, due to in safe mode, we will keep all parameters > related to NAT, SIT, SSA area, e.g. sit_bitmap_size, however, we > will update segment_count_main according new partition size, result > in there is no enough sit_bitmap and SIT blocks to address the > entire block address of new partition. > > Adding a check condition to avoid expanding partition in safe > mode, and change manual accordingly. > > Signed-off-by: Chao Yu <c...@kernel.org> > --- > fsck/resize.c | 12 ++++++++---- > man/resize.f2fs.8 | 2 +- > 2 files changed, 9 insertions(+), 5 deletions(-) > > diff --git a/fsck/resize.c b/fsck/resize.c > index 1ab7d75..58914ec 100644 > --- a/fsck/resize.c > +++ b/fsck/resize.c > @@ -756,18 +756,22 @@ int f2fs_resize(struct f2fs_sb_info *sbi) > > /* may different sector size */ > if ((c.target_sectors * c.sector_size >> > - get_sb(log_blocksize)) < get_sb(block_count)) > + get_sb(log_blocksize)) < get_sb(block_count)) { > if (!c.safe_resize) { > ASSERT_MSG("Nothing to resize, now only supports > resizing with safe resize flag\n"); > return -1; > } else { > return f2fs_resize_shrink(sbi); > } > - else if (((c.target_sectors * c.sector_size >> > + } else if (((c.target_sectors * c.sector_size >> > get_sb(log_blocksize)) > get_sb(block_count)) || > - c.ignore_error) > + c.ignore_error) { > + if (c.safe_resize) { > + ASSERT_MSG("Expanding resize doesn't support safe > resize flag"); > + return -1; > + } > return f2fs_resize_grow(sbi); > - else { > + } else { > MSG(0, "Nothing to resize.\n"); > return 0; > } > diff --git a/man/resize.f2fs.8 b/man/resize.f2fs.8 > index bdda4fd..5b6daf5 100644 > --- a/man/resize.f2fs.8 > +++ b/man/resize.f2fs.8 > @@ -69,7 +69,7 @@ Skip caution dialogue and resize partition directly. > Specify support write hint. > .TP > .BI \-s > -Enable safe resize. > +Enable safe resize, it can only be used w/ shrink resize. > .TP > .BI \-V > Print the version number and exit. > -- > 2.49.0 > > > > _______________________________________________ > Linux-f2fs-devel mailing list > Linux-f2fs-devel@lists.sourceforge.net > https://lists.sourceforge.net/lists/listinfo/linux-f2fs-devel _______________________________________________ Linux-f2fs-devel mailing list Linux-f2fs-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/linux-f2fs-devel