In QEMUOptionParameter and QemuOptsList conversion, 'assigned' info
is lost. In current code, only qcow2 amend uses 'assigned' for a check.
It will be broken after next patch. So, remove 'assigned' check. If it's
really a must that amend is valid only to explicitly defined options,
we could add it TODO later.

And for 'prealloc', it's not support amend, since nowhere to compare it
is changed or not, simply ignore it.

Signed-off-by: Chunyan Liu <cy...@suse.com>
---
 block/qcow2.c | 8 +-------
 1 file changed, 1 insertion(+), 7 deletions(-)

diff --git a/block/qcow2.c b/block/qcow2.c
index b9dc960..92d3327 100644
--- a/block/qcow2.c
+++ b/block/qcow2.c
@@ -2088,11 +2088,6 @@ static int qcow2_amend_options(BlockDriverState *bs,
 
     for (i = 0; options[i].name; i++)
     {
-        if (!options[i].assigned) {
-            /* only change explicitly defined options */
-            continue;
-        }
-
         if (!strcmp(options[i].name, "compat")) {
             if (!options[i].value.s) {
                 /* preserve default */
@@ -2106,8 +2101,7 @@ static int qcow2_amend_options(BlockDriverState *bs,
                 return -EINVAL;
             }
         } else if (!strcmp(options[i].name, "preallocation")) {
-            fprintf(stderr, "Cannot change preallocation mode.\n");
-            return -ENOTSUP;
+            /* Cannot change preallocation mode. Ignore it. */
         } else if (!strcmp(options[i].name, "size")) {
             new_size = options[i].value.n;
         } else if (!strcmp(options[i].name, "backing_file")) {
-- 
1.7.12.4


Reply via email to