From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from eggs.gnu.org ([2001:4830:134:3::10]:45827) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1WvtS8-0004tC-Fw for qemu-devel@nongnu.org; Sat, 14 Jun 2014 15:17:29 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1WvtRz-0002t5-EU for qemu-devel@nongnu.org; Sat, 14 Jun 2014 15:17:24 -0400 Received: from mx1.redhat.com ([209.132.183.28]:41322) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1WvtRz-0002sb-6G for qemu-devel@nongnu.org; Sat, 14 Jun 2014 15:17:15 -0400 Message-ID: <539C9FAE.7050301@redhat.com> Date: Sat, 14 Jun 2014 21:17:02 +0200 From: Max Reitz MIME-Version: 1.0 References: <326b6e2708ff8cf314fa0fe29aeeb1f7f674122d.1402544518.git.hutao@cn.fujitsu.com> In-Reply-To: <326b6e2708ff8cf314fa0fe29aeeb1f7f674122d.1402544518.git.hutao@cn.fujitsu.com> Content-Type: text/plain; charset=ISO-8859-1; format=flowed Content-Transfer-Encoding: quoted-printable Subject: Re: [Qemu-devel] [PATCH v10 4/6] qapi: introduce PreallocMode and a new PreallocMode full. 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: > This patch prepares for the subsequent patches. > > Reviewed-by: Fam Zheng > Reviewed-by: Eric Blake > Signed-off-by: Hu Tao > --- > block/qcow2.c | 8 ++++---- > qapi-schema.json | 14 ++++++++++++++ > 2 files changed, 18 insertions(+), 4 deletions(-) > > diff --git a/block/qcow2.c b/block/qcow2.c > index 6732e7c..2e0b83c 100644 > --- a/block/qcow2.c > +++ b/block/qcow2.c > @@ -1593,7 +1593,7 @@ static int preallocate(BlockDriverState *bs) > =20 > static int qcow2_create2(const char *filename, int64_t total_size, > const char *backing_file, const char *backin= g_format, > - int flags, size_t cluster_size, int prealloc, > + int flags, size_t cluster_size, PreallocMode = prealloc, > QEMUOptionParameter *options, int version, > Error **errp) > { > @@ -1770,7 +1770,7 @@ static int qcow2_create(const char *filename, QEM= UOptionParameter *options, > uint64_t size =3D 0; > int flags =3D 0; > size_t cluster_size =3D DEFAULT_CLUSTER_SIZE; > - int prealloc =3D 0; > + PreallocMode prealloc =3D PREALLOC_MODE_OFF; > int version =3D 3; > Error *local_err =3D NULL; > int ret; > @@ -1791,9 +1791,9 @@ static int qcow2_create(const char *filename, QEM= UOptionParameter *options, > } > } else if (!strcmp(options->name, BLOCK_OPT_PREALLOC)) { > if (!options->value.s || !strcmp(options->value.s, "off")= ) { > - prealloc =3D 0; > + prealloc =3D PREALLOC_MODE_OFF; > } else if (!strcmp(options->value.s, "metadata")) { > - prealloc =3D 1; > + prealloc =3D PREALLOC_MODE_METADATA; > } else { > error_setg(errp, "Invalid preallocation mode: '%s'", > options->value.s); > diff --git a/qapi-schema.json b/qapi-schema.json > index 14b498b..f5ccb31 100644 > --- a/qapi-schema.json > +++ b/qapi-schema.json As of commit 5db15096 (Beno=EEt's "Extract QAPI block commands" series),=20 block-related QAPI definitions should go into qapi/block.json or=20 qapi/block-core.json. I think the following definition should now go=20 into qapi/block-core.json instead of qapi-schema.json. Apart from that, this patch looks good. Max > @@ -3077,3 +3077,17 @@ > 'btn' : 'InputBtnEvent', > 'rel' : 'InputMoveEvent', > 'abs' : 'InputMoveEvent' } } > + > +## > +# @PreallocMode > +# > +# Preallocation mode of QEMU image file > +# > +# @off: no preallocation > +# @metadata: preallocate only for metadata > +# @full: preallocate all data, including metadata > +# > +# Since 2.1 > +## > +{ 'enum': 'PreallocMode', > + 'data': [ 'off', 'metadata', 'full' ] }