On Fri, Mar 21, 2014 at 06:12:23PM +0800, Chunyan Liu wrote: > 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. */
You're ignoring/silencing an informed option, I think it's fear enough to notify the caller about it - even if we're never using it for amend. Regards... -- Leandro Dorileo > } 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 > > -- Leandro Dorileo