Message ID | 326b6e2708ff8cf314fa0fe29aeeb1f7f674122d.1402544518.git.hutao@cn.fujitsu.com |
---|---|
State | New |
Headers | show |
On 12.06.2014 05:54, Hu Tao wrote: > This patch prepares for the subsequent patches. > > Reviewed-by: Fam Zheng <famz@redhat.com> > Reviewed-by: Eric Blake <eblake@redhat.com> > Signed-off-by: Hu Tao <hutao@cn.fujitsu.com> > --- > 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) > > 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) > { > @@ -1770,7 +1770,7 @@ static int qcow2_create(const char *filename, QEMUOptionParameter *options, > uint64_t size = 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; > @@ -1791,9 +1791,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 14b498b..f5ccb31 100644 > --- a/qapi-schema.json > +++ b/qapi-schema.json As of commit 5db15096 (Benoît's "Extract QAPI block commands" series), block-related QAPI definitions should go into qapi/block.json or qapi/block-core.json. I think the following definition should now go 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' ] }
On Sat, Jun 14, 2014 at 09:17:02PM +0200, Max Reitz wrote: > On 12.06.2014 05:54, Hu Tao wrote: > >This patch prepares for the subsequent patches. > > > >Reviewed-by: Fam Zheng <famz@redhat.com> > >Reviewed-by: Eric Blake <eblake@redhat.com> > >Signed-off-by: Hu Tao <hutao@cn.fujitsu.com> > >--- > > 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) > > 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) > > { > >@@ -1770,7 +1770,7 @@ static int qcow2_create(const char *filename, QEMUOptionParameter *options, > > uint64_t size = 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; > >@@ -1791,9 +1791,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 14b498b..f5ccb31 100644 > >--- a/qapi-schema.json > >+++ b/qapi-schema.json > > As of commit 5db15096 (Benoît's "Extract QAPI block commands" > series), block-related QAPI definitions should go into > qapi/block.json or qapi/block-core.json. I think the following > definition should now go into qapi/block-core.json instead of > qapi-schema.json. > > Apart from that, this patch looks good. > > Max Thanks, I'll fix in next version. Hu
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) 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) { @@ -1770,7 +1770,7 @@ static int qcow2_create(const char *filename, QEMUOptionParameter *options, uint64_t size = 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; @@ -1791,9 +1791,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 14b498b..f5ccb31 100644 --- a/qapi-schema.json +++ b/qapi-schema.json @@ -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' ] }