Hi, Jaegeuk: On 2018/3/28 1:19, Jaegeuk Kim wrote: > From: katao <ka...@xiaomi.com> > > The args of wanted_total_sectors is calculated based > on the DEFAULT_SECTOR_SIZE(512Bytes).get_device_info(i) > may be reset dev_sector_size, we should reset the number > of wanted_total_sectors. > > This bug was reported to Google Issue Tracker. > Link: https://issuetracker.google.com/issues/76407663 >
This fix is puzzling... IMO, we should not recalculate wanted_total_sectors here. c.wanted_total_sectors is got from user in f2fs_parse_options. Users must know the sector size of device they use, and they need to pass a correct wanted_total_sectors to mkfs.f2fs. Thanks, Junling > Signed-off-by: katao <ka...@xiaomi.com> > Signed-off-by: Jaegeuk Kim <jaeg...@google.com> > --- > lib/libf2fs.c | 9 ++++++++- > 1 file changed, 8 insertions(+), 1 deletion(-) > > diff --git a/lib/libf2fs.c b/lib/libf2fs.c > index 0c684d5..5f11796 100644 > --- a/lib/libf2fs.c > +++ b/lib/libf2fs.c > @@ -799,8 +799,15 @@ int get_device_info(int i) > #ifdef BLKSSZGET > if (ioctl(fd, BLKSSZGET, §or_size) < 0) > MSG(0, "\tError: Using the default sector size\n"); > - else if (dev->sector_size < sector_size) > + else if (dev->sector_size < sector_size){ > + /* > + * wanted_total_sectors need to be reset by new > + * sector_size. > + */ > + c.wanted_total_sectors = (c.wanted_total_sectors * > + dev->sector_size) / sector_size; > dev->sector_size = sector_size; > + } > #endif > #ifdef BLKGETSIZE64 > if (ioctl(fd, BLKGETSIZE64, &dev->total_sectors) < 0) { > ------------------------------------------------------------------------------ Check out the vibrant tech community on one of the world's most engaging tech sites, Slashdot.org! http://sdm.link/slashdot _______________________________________________ Linux-f2fs-devel mailing list Linux-f2fs-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/linux-f2fs-devel