From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from eggs.gnu.org ([2001:4830:134:3::10]:43513) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1WvtCC-0007ls-39 for qemu-devel@nongnu.org; Sat, 14 Jun 2014 15:01:00 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1WvtC7-0005wM-6U for qemu-devel@nongnu.org; Sat, 14 Jun 2014 15:00:55 -0400 Received: from mx1.redhat.com ([209.132.183.28]:1786) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1WvtC6-0005wG-Uz for qemu-devel@nongnu.org; Sat, 14 Jun 2014 15:00:51 -0400 Message-ID: <539C9BD5.9090203@redhat.com> Date: Sat, 14 Jun 2014 21:00:37 +0200 From: Max Reitz MIME-Version: 1.0 References: In-Reply-To: Content-Type: text/plain; charset=ISO-8859-1; format=flowed Content-Transfer-Encoding: 7bit Subject: Re: [Qemu-devel] [PATCH v10 2/6] raw, qcow2: don't convert file size to sector size List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: Hu Tao , qemu-devel@nongnu.org Cc: kwolf@redhat.com, Peter Lieven , Markus Armbruster , Stefan Hajnoczi , y-goto@jp.fujitsu.com On 12.06.2014 05:54, Hu Tao wrote: > and avoid converting it back later. And round up file size to nearest > sector. > > Signed-off-by: Hu Tao > --- > block/qcow2.c | 8 ++++---- > block/raw-posix.c | 4 ++-- > block/raw-win32.c | 4 ++-- > 3 files changed, 8 insertions(+), 8 deletions(-) > > diff --git a/block/qcow2.c b/block/qcow2.c > index 75b28cd..6732e7c 100644 > --- a/block/qcow2.c > +++ b/block/qcow2.c > @@ -1714,7 +1714,7 @@ static int qcow2_create2(const char *filename, int64_t total_size, > } > > /* Okay, now that we have a valid image, let's give it the right size */ > - ret = bdrv_truncate(bs, total_size * BDRV_SECTOR_SIZE); > + ret = bdrv_truncate(bs, total_size); > if (ret < 0) { > error_setg_errno(errp, -ret, "Could not resize image"); > goto out; > @@ -1767,7 +1767,7 @@ static int qcow2_create(const char *filename, QEMUOptionParameter *options, > { > const char *backing_file = NULL; > const char *backing_fmt = NULL; > - uint64_t sectors = 0; > + uint64_t size = 0; > int flags = 0; > size_t cluster_size = DEFAULT_CLUSTER_SIZE; > int prealloc = 0; > @@ -1778,7 +1778,7 @@ static int qcow2_create(const char *filename, QEMUOptionParameter *options, > /* Read out options */ > while (options && options->name) { > if (!strcmp(options->name, BLOCK_OPT_SIZE)) { > - sectors = DIV_ROUND_UP(options->value.n, BDRV_SECTOR_SIZE); > + size = ROUND_UP(options->value.n, BDRV_SECTOR_SIZE); I'm not even sure whether the ROUND_UP() is needed anymore, as qcow2 should only care about clusters. However, we still have that more or less arbitrary "sector" unit in the block layer (although I think Markus is trying to get rid of it), so it's probably for the better to align the size here. Reviewed-by: Max Reitz