[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Qemu-block] [PATCH for-4.1 1/2] block: Fix check for default backing fi
From: |
Alberto Garcia |
Subject: |
[Qemu-block] [PATCH for-4.1 1/2] block: Fix check for default backing files in bdrv_reopen_prepare() |
Date: |
Thu, 11 Apr 2019 17:23:45 +0300 |
x-blockdev-reopen requires that the 'backing' parameter is specified
when an image has a backing file attached or when there is a default
backing file in the image metadata.
The latter can be checked by reading bs->auto_backing_file, but
bdrv_reopen_prepare() is using bs->backing_file.
This bug should be detected by iotest 245, but unfortunately the test
expectation is wrong so it must be corrected as well.
Signed-off-by: Alberto Garcia <address@hidden>
Reported-by: Max Reitz <address@hidden>
---
block.c | 3 ++-
tests/qemu-iotests/245 | 2 +-
2 files changed, 3 insertions(+), 2 deletions(-)
diff --git a/block.c b/block.c
index 16615bc876..e496999e2f 100644
--- a/block.c
+++ b/block.c
@@ -3634,7 +3634,8 @@ int bdrv_reopen_prepare(BDRVReopenState *reopen_state,
BlockReopenQueue *queue,
* its metadata. Otherwise the 'backing' option can be omitted.
*/
if (drv->supports_backing && reopen_state->backing_missing &&
- (backing_bs(reopen_state->bs) || reopen_state->bs->backing_file[0])) {
+ (backing_bs(reopen_state->bs) ||
+ reopen_state->bs->auto_backing_file[0])) {
error_setg(errp, "backing is missing for '%s'",
reopen_state->bs->node_name);
ret = -EINVAL;
diff --git a/tests/qemu-iotests/245 b/tests/qemu-iotests/245
index 7891a210c1..9784ca3ced 100644
--- a/tests/qemu-iotests/245
+++ b/tests/qemu-iotests/245
@@ -716,7 +716,7 @@ class TestBlockdevReopen(iotests.QMPTestCase):
# Detach hd2 from hd0.
self.reopen(opts, {'backing': None})
- self.reopen(opts, {}, "backing is missing for 'hd0'")
+ self.reopen(opts)
# Remove both hd0 and hd2
result = self.vm.qmp('blockdev-del', conv_keys = True, node_name =
'hd0')
--
2.11.0