From 502c747aa1f1a0d0c56a35f59e3e9c06f201b304 Mon Sep 17 00:00:00 2001 From: John Ferlan Date: Tue, 25 Oct 2016 15:32:27 -0400 Subject: [PATCH] qemu: Fix depedency order in qemuRemoveDiskDevice Need to remove the drive first, then the secobj and/or encobj if they exist. This is because the drive has a dependency on secobj (or the secret for the networked storage server) and/or the encobj (or the secret for the LUKS encrypted volume). Deleting either object first leaves an drive without it's respective objects. Signed-off-by: John Ferlan --- src/qemu/qemu_hotplug.c | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/src/qemu/qemu_hotplug.c b/src/qemu/qemu_hotplug.c index 7a21dc67f5..30565d5002 100644 --- a/src/qemu/qemu_hotplug.c +++ b/src/qemu/qemu_hotplug.c @@ -3176,6 +3176,9 @@ qemuDomainRemoveDiskDevice(virQEMUDriverPtr driver, qemuDomainObjEnterMonitor(driver, vm); + qemuMonitorDriveDel(priv->mon, drivestr); + VIR_FREE(drivestr); + /* If it fails, then so be it - it was a best shot */ if (objAlias) ignore_value(qemuMonitorDelObject(priv->mon, objAlias)); @@ -3186,8 +3189,6 @@ qemuDomainRemoveDiskDevice(virQEMUDriverPtr driver, ignore_value(qemuMonitorDelObject(priv->mon, encAlias)); VIR_FREE(encAlias); - qemuMonitorDriveDel(priv->mon, drivestr); - VIR_FREE(drivestr); if (qemuDomainObjExitMonitor(driver, vm) < 0) return -1;