From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from eggs.gnu.org ([2001:4830:134:3::10]:38426) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1WD98V-0007RP-Be for qemu-devel@nongnu.org; Tue, 11 Feb 2014 03:56:17 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1WD98Q-0006Hw-Jy for qemu-devel@nongnu.org; Tue, 11 Feb 2014 03:56:11 -0500 Received: from mx1.redhat.com ([209.132.183.28]:14876) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1WD98Q-0006Hj-BW for qemu-devel@nongnu.org; Tue, 11 Feb 2014 03:56:06 -0500 Date: Tue, 11 Feb 2014 16:56:05 +0800 From: Fam Zheng Message-ID: <20140211085605.GD12675@T430.nay.redhat.com> References: MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: Subject: Re: [Qemu-devel] [PATCH v5 RESEND 1/4] qapi: introduce PreallocMode and a new PreallocMode full. List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: Hu Tao Cc: Kevin Wolf , Stefan Hajnoczi , Peter Lieven , qemu-devel@nongnu.org On Tue, 02/11 15:07, Hu Tao wrote: > This patch prepares for the subsequent patches. > > Signed-off-by: Hu Tao > --- > block/qcow2.c | 8 ++++---- > qapi-schema.json | 12 ++++++++++++ > 2 files changed, 16 insertions(+), 4 deletions(-) > > diff --git a/block/qcow2.c b/block/qcow2.c > index 99a1ad1..30e36bc 100644 > --- a/block/qcow2.c > +++ b/block/qcow2.c > @@ -1452,7 +1452,7 @@ static int preallocate(BlockDriverState *bs) > > static int qcow2_create2(const char *filename, int64_t total_size, > const char *backing_file, const char *backing_format, > - int flags, size_t cluster_size, int prealloc, > + int flags, size_t cluster_size, PreallocMode prealloc, > QEMUOptionParameter *options, int version, > Error **errp) > { > @@ -1622,7 +1622,7 @@ static int qcow2_create(const char *filename, QEMUOptionParameter *options, > uint64_t sectors = 0; > int flags = 0; > size_t cluster_size = DEFAULT_CLUSTER_SIZE; > - int prealloc = 0; > + PreallocMode prealloc = PREALLOC_MODE_OFF; > int version = 3; > Error *local_err = NULL; > int ret; > @@ -1643,9 +1643,9 @@ static int qcow2_create(const char *filename, QEMUOptionParameter *options, > } > } else if (!strcmp(options->name, BLOCK_OPT_PREALLOC)) { > if (!options->value.s || !strcmp(options->value.s, "off")) { > - prealloc = 0; > + prealloc = PREALLOC_MODE_OFF; > } else if (!strcmp(options->value.s, "metadata")) { > - prealloc = 1; > + prealloc = 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 05ced9d..f86068c 100644 > --- a/qapi-schema.json > +++ b/qapi-schema.json > @@ -4419,3 +4419,15 @@ > # Since: 1.7 > ## > { 'command': 'blockdev-add', 'data': { 'options': 'BlockdevOptions' } } > + > +## > +# @PreallocMode > +# > +# Preallocation mode of QEMU image file > +# > +# @off: no preallocation > +# @metadata: preallocate only for metadata > +# @full: preallocate all data, including metadata > +## > +{ 'enum': 'PreallocMode', > + 'data': [ 'off', 'metadata', 'full' ] } > -- > 1.8.0 > Reviewed-by: Fam Zheng