[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Qemu-block] [PULL 01/35] block: don't add 'driver' to options when refe
From: |
Kevin Wolf |
Subject: |
[Qemu-block] [PULL 01/35] block: don't add 'driver' to options when referring to backing via node name |
Date: |
Thu, 26 Oct 2017 15:17:07 +0200 |
From: Peter Krempa <address@hidden>
When referring 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.
$ 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
Signed-off-by: Peter Krempa <address@hidden>
Signed-off-by: Kevin Wolf <address@hidden>
---
block.c | 3 ++-
1 file changed, 2 insertions(+), 1 deletion(-)
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);
}
--
2.13.6
- [Qemu-block] [PULL 00/35] Block layer patches, Kevin Wolf, 2017/10/26
- [Qemu-block] [PULL 02/35] qemu-iotests: Test backing_fmt with backing node reference, Kevin Wolf, 2017/10/26
- [Qemu-block] [PULL 01/35] block: don't add 'driver' to options when referring to backing via node name,
Kevin Wolf <=
- [Qemu-block] [PULL 03/35] block: Allow NULL file for bdrv_get_block_status(), Kevin Wolf, 2017/10/26
- [Qemu-block] [PULL 04/35] block: Add flag to avoid wasted work in bdrv_is_allocated(), Kevin Wolf, 2017/10/26
- [Qemu-block] [PULL 05/35] block: Make bdrv_round_to_clusters() signature more useful, Kevin Wolf, 2017/10/26
- [Qemu-block] [PULL 08/35] qemu-img: Switch get_block_status() to byte-based, Kevin Wolf, 2017/10/26
- [Qemu-block] [PULL 06/35] qcow2: Switch is_zero_sectors() to byte-based, Kevin Wolf, 2017/10/26
- [Qemu-block] [PULL 09/35] block: Convert bdrv_get_block_status() to bytes, Kevin Wolf, 2017/10/26
- [Qemu-block] [PULL 07/35] block: Switch bdrv_make_zero() to byte-based, Kevin Wolf, 2017/10/26
- [Qemu-block] [PULL 11/35] block: Switch BdrvCoGetBlockStatusData to byte-based, Kevin Wolf, 2017/10/26
- [Qemu-block] [PULL 10/35] block: Switch bdrv_co_get_block_status() to byte-based, Kevin Wolf, 2017/10/26
- [Qemu-block] [PULL 12/35] block: Switch bdrv_common_block_status_above() to byte-based, Kevin Wolf, 2017/10/26