[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [Qemu-block] [PATCH] block: don't add 'driver' to options when refer
From: |
Kevin Wolf |
Subject: |
Re: [Qemu-block] [PATCH] block: don't add 'driver' to options when refering to backing via node name |
Date: |
Tue, 17 Oct 2017 16:41:00 +0200 |
User-agent: |
Mutt/1.9.1 (2017-09-22) |
Am 12.10.2017 um 16:14 hat Peter Krempa geschrieben:
> When refering to a backing file of an image via node name
> bdrv_open_backing_file would add the 'driver' option to the option list
> filling it with the backing format driver. This breaks construction of
> the backing chain via -blockdev, as bdrv_open_inherit reports an error
> if both 'reference' and 'options' are provided.
>
> Signed-off-by: Peter Krempa <address@hidden>
If you don't mind, I'd add a specific example to the commit message:
$ qemu-img create -f raw /tmp/backing.raw 64M
$ qemu-img create -f qcow2 -F raw -b /tmp/backing.raw /tmp/test.qcow2
$ qemu-system-x86_64 \
-blockdev driver=file,filename=/tmp/backing.raw,node-name=backing \
-blockdev
driver=qcow2,file.driver=file,file.filename=/tmp/test.qcow2,node-name=root,backing=backing
qemu-system-x86_64: -blockdev
driver=qcow2,file.driver=file,file.filename=/tmp/test.qcow2,node-name=root,backing=backing:
Could not open backing file: Cannot reference an existing block device with
additional options or a new filename
> diff --git a/block.c b/block.c
> index 46eb1728da..684cb018da 100644
> --- a/block.c
> +++ b/block.c
> @@ -2245,7 +2245,8 @@ int bdrv_open_backing_file(BlockDriverState *bs, QDict
> *parent_options,
> goto free_exit;
> }
>
> - if (bs->backing_format[0] != '\0' && !qdict_haskey(options, "driver")) {
> + if (!reference &&
> + bs->backing_format[0] != '\0' && !qdict_haskey(options, "driver")) {
> qdict_put_str(options, "driver", bs->backing_format);
> }
Looks good to me.
Kevin