From 1149fe4c15feba1a2970bd69c3d3d2884cd72938 Mon Sep 17 00:00:00 2001 From: John Ferlan Date: Mon, 18 Jul 2016 13:24:27 -0400 Subject: [PATCH] qemu: Use the hostdev alias in qemuDomainAttachHostSCSIDevice error path https://bugzilla.redhat.com/show_bug.cgi?id=1289391 Rather than pass the whole drive string (which contained the alias), pass only the alias for the qemuMonitorDriveDel call in the error path when adding a host device in the monitor fails. --- src/qemu/qemu_hotplug.c | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/src/qemu/qemu_hotplug.c b/src/qemu/qemu_hotplug.c index 5aa9e5c3b9..00e4a75ba8 100644 --- a/src/qemu/qemu_hotplug.c +++ b/src/qemu/qemu_hotplug.c @@ -2045,6 +2045,7 @@ qemuDomainAttachHostSCSIDevice(virConnectPtr conn, virErrorPtr orig_err; char *devstr = NULL; char *drvstr = NULL; + char *drivealias = NULL; bool teardowncgroup = false; bool teardownlabel = false; bool driveAdded = false; @@ -2103,6 +2104,9 @@ qemuDomainAttachHostSCSIDevice(virConnectPtr conn, if (!(drvstr = qemuBuildSCSIHostdevDrvStr(hostdev))) goto cleanup; + if (!(drivealias = qemuAliasFromHostdev(hostdev))) + goto cleanup; + if (!(devstr = qemuBuildSCSIHostdevDevStr(vm->def, hostdev, priv->qemuCaps))) goto cleanup; @@ -2138,13 +2142,14 @@ qemuDomainAttachHostSCSIDevice(virConnectPtr conn, vm->def, hostdev, NULL) < 0) VIR_WARN("Unable to restore host device labelling on hotplug fail"); } + VIR_FREE(drivealias); VIR_FREE(drvstr); VIR_FREE(devstr); return ret; exit_monitor: orig_err = virSaveLastError(); - if (driveAdded && qemuMonitorDriveDel(priv->mon, drvstr) < 0) { + if (driveAdded && qemuMonitorDriveDel(priv->mon, drivealias) < 0) { VIR_WARN("Unable to remove drive %s (%s) after failed " "qemuMonitorAddDevice", drvstr, devstr);