qemu: domain: Don't redetect backing chain when using -blockdev

We need to load the backing chain from the XML when using -blockdev.

Signed-off-by: Peter Krempa <pkrempa@redhat.com>
Reviewed-by: Ján Tomko <jtomko@redhat.com>
This commit is contained in:
Peter Krempa 2017-09-29 17:20:52 +02:00
parent 8d5f5333c2
commit 9e01760bc0

View File

@ -6027,8 +6027,10 @@ qemuProcessPrepareHostStorage(virQEMUDriverPtr driver,
virDomainObjPtr vm,
unsigned int flags)
{
qemuDomainObjPrivatePtr priv = vm->privateData;
size_t i;
bool cold_boot = flags & VIR_QEMU_PROCESS_START_COLD;
bool blockdev = virQEMUCapsGet(priv->qemuCaps, QEMU_CAPS_BLOCKDEV);
for (i = vm->def->ndisks; i > 0; i--) {
size_t idx = i - 1;
@ -6037,7 +6039,9 @@ qemuProcessPrepareHostStorage(virQEMUDriverPtr driver,
if (virStorageSourceIsEmpty(disk->src))
continue;
virStorageSourceBackingStoreClear(disk->src);
/* backing chain needs to be redetected if we aren't using blockdev */
if (!blockdev)
virStorageSourceBackingStoreClear(disk->src);
if (qemuDomainDetermineDiskChain(driver, vm, disk, true) >= 0)
continue;
@ -7713,7 +7717,8 @@ qemuProcessReconnect(void *opaque)
goto error;
/* backing chains need to be refreshed only if they could change */
if (priv->reconnectBlockjobs != VIR_TRISTATE_BOOL_NO) {
if (priv->reconnectBlockjobs != VIR_TRISTATE_BOOL_NO &&
!virQEMUCapsGet(priv->qemuCaps, QEMU_CAPS_BLOCKDEV)) {
/* This should be the only place that calls
* qemuDomainDetermineDiskChain with @report_broken == false
* to guarantee best-effort domain reconnect */