block: Avoid error accumulation in bdrv_img_create()

When creating an image fails because the format doesn't support option
"backing_file" or "backing_fmt", bdrv_img_create() first has
qemu_opt_set() put a generic error into @local_err, then puts the real
error into @errp with error_setg(), and then propagates the former to
the latter, which throws away the generic error.  A bit complicated,
but works.

Now that qemu_opt_set() returns a useful value, we can simply ignore
the generic error instead.

Signed-off-by: Markus Armbruster <armbru@redhat.com>
Reviewed-by: Eric Blake <eblake@redhat.com>
Reviewed-by: Vladimir Sementsov-Ogievskiy <vsementsov@virtuozzo.com>
Message-Id: <20200707160613.848843-16-armbru@redhat.com>
This commit is contained in:
Markus Armbruster 2020-07-07 18:05:43 +02:00
parent 235e59cf03
commit 3882578bb5
1 changed files with 2 additions and 2 deletions

View File

@ -6075,7 +6075,7 @@ void bdrv_img_create(const char *filename, const char *fmt,
if (base_filename) { if (base_filename) {
if (!qemu_opt_set(opts, BLOCK_OPT_BACKING_FILE, base_filename, if (!qemu_opt_set(opts, BLOCK_OPT_BACKING_FILE, base_filename,
&local_err)) { NULL)) {
error_setg(errp, "Backing file not supported for file format '%s'", error_setg(errp, "Backing file not supported for file format '%s'",
fmt); fmt);
goto out; goto out;
@ -6083,7 +6083,7 @@ void bdrv_img_create(const char *filename, const char *fmt,
} }
if (base_fmt) { if (base_fmt) {
if (!qemu_opt_set(opts, BLOCK_OPT_BACKING_FMT, base_fmt, &local_err)) { if (!qemu_opt_set(opts, BLOCK_OPT_BACKING_FMT, base_fmt, NULL)) {
error_setg(errp, "Backing file format not supported for file " error_setg(errp, "Backing file format not supported for file "
"format '%s'", fmt); "format '%s'", fmt);
goto out; goto out;