1
0

qemu: hotplug: Untangle cleanup paths in qemuDomainChangeEjectableMedia

Avoid the "audit" label to simplify control flow.
This commit is contained in:
Peter Krempa 2014-08-05 14:09:44 +02:00
parent 1cc6bdc2e6
commit 240eb2fb89

View File

@ -108,7 +108,7 @@ int qemuDomainChangeEjectableMedia(virQEMUDriverPtr driver,
qemuDomainObjExitMonitor(driver, vm); qemuDomainObjExitMonitor(driver, vm);
if (ret < 0) if (ret < 0)
goto audit; goto error;
virObjectRef(vm); virObjectRef(vm);
/* we don't want to report errors from media tray_open polling */ /* we don't want to report errors from media tray_open polling */
@ -128,7 +128,7 @@ int qemuDomainChangeEjectableMedia(virQEMUDriverPtr driver,
virReportError(VIR_ERR_OPERATION_FAILED, "%s", virReportError(VIR_ERR_OPERATION_FAILED, "%s",
_("Unable to eject media")); _("Unable to eject media"));
ret = -1; ret = -1;
goto audit; goto error;
} }
src = virDomainDiskGetSource(disk); src = virDomainDiskGetSource(disk);
@ -154,7 +154,7 @@ int qemuDomainChangeEjectableMedia(virQEMUDriverPtr driver,
src, format); src, format);
qemuDomainObjExitMonitor(driver, vm); qemuDomainObjExitMonitor(driver, vm);
} }
audit:
virDomainAuditDisk(vm, origdisk->src, disk->src, "update", ret >= 0); virDomainAuditDisk(vm, origdisk->src, disk->src, "update", ret >= 0);
if (ret < 0) if (ret < 0)
@ -181,6 +181,8 @@ int qemuDomainChangeEjectableMedia(virQEMUDriverPtr driver,
return ret; return ret;
error: error:
virDomainAuditDisk(vm, origdisk->src, disk->src, "update", false);
if (virSecurityManagerRestoreDiskLabel(driver->securityManager, if (virSecurityManagerRestoreDiskLabel(driver->securityManager,
vm->def, disk) < 0) vm->def, disk) < 0)
VIR_WARN("Unable to restore security label on new media %s", src); VIR_WARN("Unable to restore security label on new media %s", src);