From: Michal Privoznik Date: Wed, 23 May 2018 16:36:57 +0000 (+0200) Subject: qemu_hotplug: Use more gotos in qemuDomainDetach*Device X-Git-Url: http://xenbits.xensource.com/gitweb?a=commitdiff_plain;h=e73f6b4d6679d5a1a3751999b527c18b1eb48b24;p=libvirt.git qemu_hotplug: Use more gotos in qemuDomainDetach*Device We are overwriting @ret a lot. It makes hard to see what is actually going on. Use more gotos. Two functions are fixed here: qemuDomainDetachShmemDevice() and qemuDomainDetachWatchdog(). Signed-off-by: Michal Privoznik Reviewed-by: Ján Tomko --- diff --git a/src/qemu/qemu_hotplug.c b/src/qemu/qemu_hotplug.c index 0062e27a3b..e84dc909b9 100644 --- a/src/qemu/qemu_hotplug.c +++ b/src/qemu/qemu_hotplug.c @@ -5283,19 +5283,20 @@ qemuDomainDetachShmemDevice(virQEMUDriverPtr driver, } qemuDomainMarkDeviceForRemoval(vm, &shmem->info); - qemuDomainObjEnterMonitor(driver, vm); - - ret = qemuMonitorDelDevice(priv->mon, shmem->info.alias); + qemuDomainObjEnterMonitor(driver, vm); + if (qemuMonitorDelDevice(priv->mon, shmem->info.alias) < 0) { + ignore_value(qemuDomainObjExitMonitor(driver, vm)); + goto cleanup; + } if (qemuDomainObjExitMonitor(driver, vm) < 0) - ret = -1; + goto cleanup; - if (ret == 0) { - if ((ret = qemuDomainWaitForDeviceRemoval(vm)) == 1) - ret = qemuDomainRemoveShmemDevice(driver, vm, shmem); - } - qemuDomainResetDeviceRemoval(vm); + if ((ret = qemuDomainWaitForDeviceRemoval(vm)) == 1) + ret = qemuDomainRemoveShmemDevice(driver, vm, shmem); + cleanup: + qemuDomainResetDeviceRemoval(vm); return ret; } @@ -5336,19 +5337,20 @@ qemuDomainDetachWatchdog(virQEMUDriverPtr driver, } qemuDomainMarkDeviceForRemoval(vm, &watchdog->info); - qemuDomainObjEnterMonitor(driver, vm); - - ret = qemuMonitorDelDevice(priv->mon, watchdog->info.alias); + qemuDomainObjEnterMonitor(driver, vm); + if (qemuMonitorDelDevice(priv->mon, watchdog->info.alias) < 0) { + ignore_value(qemuDomainObjExitMonitor(driver, vm)); + goto cleanup; + } if (qemuDomainObjExitMonitor(driver, vm) < 0) - ret = -1; + goto cleanup; - if (ret == 0) { - if ((ret = qemuDomainWaitForDeviceRemoval(vm)) == 1) - ret = qemuDomainRemoveWatchdog(driver, vm, watchdog); - } - qemuDomainResetDeviceRemoval(vm); + if ((ret = qemuDomainWaitForDeviceRemoval(vm)) == 1) + ret = qemuDomainRemoveWatchdog(driver, vm, watchdog); + cleanup: + qemuDomainResetDeviceRemoval(vm); return ret; }