qemu-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Qemu-devel] [PATCH v10 4/6] qapi: introduce PreallocMode and a new


From: Max Reitz
Subject: Re: [Qemu-devel] [PATCH v10 4/6] qapi: introduce PreallocMode and a new PreallocMode full.
Date: Sat, 14 Jun 2014 21:17:02 +0200
User-agent: Mozilla/5.0 (X11; Linux x86_64; rv:24.0) Gecko/20100101 Thunderbird/24.6.0

On 12.06.2014 05:54, Hu Tao wrote:
This patch prepares for the subsequent patches.

Reviewed-by: Fam Zheng <address@hidden>
Reviewed-by: Eric Blake <address@hidden>
Signed-off-by: Hu Tao <address@hidden>
---
  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' ] }




reply via email to

[Prev in Thread] Current Thread [Next in Thread]