From mboxrd@z Thu Jan 1 00:00:00 1970 From: Chao Yu Subject: Re: [PATCH] libf2fs: reset wanted_total_sectors by new sector_size Date: Fri, 30 Mar 2018 19:26:56 +0800 Message-ID: References: <20180327171908.15092-1-jaegeuk@kernel.org> <7561e573-9d88-60f0-868f-4a4b59d588cb@huawei.com> <50951b88-ccfc-836c-34c0-7347ff1f747a@huawei.com> Mime-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit Return-path: Received: from [172.30.20.202] (helo=mx.sourceforge.net) by sfs-ml-2.v29.lw.sourceforge.com with esmtps (TLSv1.2:ECDHE-RSA-AES256-GCM-SHA384:256) (Exim 4.90_1) (envelope-from ) id 1f1sCF-00056q-Cl for linux-f2fs-devel@lists.sourceforge.net; Fri, 30 Mar 2018 11:27:51 +0000 Received: from szxga05-in.huawei.com ([45.249.212.191] helo=huawei.com) by sfi-mx-1.v28.lw.sourceforge.com with esmtps (TLSv1.2:ECDHE-RSA-AES256-GCM-SHA384:256) (Exim 4.90_1) id 1f1sCC-00FZaP-Od for linux-f2fs-devel@lists.sourceforge.net; Fri, 30 Mar 2018 11:27:51 +0000 In-Reply-To: <50951b88-ccfc-836c-34c0-7347ff1f747a@huawei.com> Content-Language: en-US List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: linux-f2fs-devel-bounces@lists.sourceforge.net To: Junling Zheng , Jaegeuk Kim , linux-f2fs-devel@lists.sourceforge.net Cc: katao , Jaegeuk Kim On 2018/3/30 18:51, Junling Zheng wrote: > Hi, > > On 2018/3/30 17:28, Chao Yu wrote: >> Hi All, >> >> On 2018/3/28 1:19, Jaegeuk Kim wrote: >>> From: katao >>> >>> 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 >> >> I don't think this is the right way, since now we have changed previous >> sector_counter's meaning, some applications, for example, like xfstests will get >> device's real sector size via blockdev --getsize64, then calculate total wanted >> sector count by total_wanted_size / real_sector_size, if we changed default >> sector size to 512bytes, xfstests will pass a wrong sector number, result in >> getting wrong partition size. >> >> For something worse, in order to get the correct sector number, we have to >> change the way of calculation method of xfstests for new mkfs, but how can >> xfstests know the current version of mkfs is new or old... >> >> I think the change didn't consider backward compatibility of mkfs, so, in order >> to keep that, we'd better to let user pass the right sector number based on >> their device, or we can introduce a new parameter to indicate user wanted total >> size. >> >> How do you think? >> > > Agree. It's not backward-compatible. Most users can pass the correct sector number > calculated by the real sector size. For those very few users using 512B despite of > the actual sector size, all we need to do is informing them the real sector size. The problem is via passed sector number, we can't know user has already knew the real sector size or not, so we don't have any chance to info them. Thanks, > > Thanks, > Junling > >> Thanks, >> >>> >>> Signed-off-by: katao >>> Signed-off-by: Jaegeuk Kim >>> --- >>> 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