
On 05/18/2010 12:29 PM, Eric Blake wrote:
On 05/17/2010 11:17 AM, Cole Robinson wrote:
The current cleanup: in StartVMDaemon path is a poor duplication. qemuShutdownVMDaemon can handle teardown for inactive VMs, so let's use it.
Signed-off-by: Cole Robinson <crobinso@redhat.com> --- src/qemu/qemu_driver.c | 18 +----------------- 1 files changed, 1 insertions(+), 17 deletions(-)
diff --git a/src/qemu/qemu_driver.c b/src/qemu/qemu_driver.c index d2f1a36..114917d 100644 --- a/src/qemu/qemu_driver.c +++ b/src/qemu/qemu_driver.c @@ -3569,23 +3569,7 @@ static int qemudStartVMDaemon(virConnectPtr conn, return 0;
cleanup: - /* We jump here if we failed to start the VM for any reason - * XXX investigate if we can kill this block and safely call - * qemudShutdownVMDaemon even though no PID is running */ - qemuDomainReAttachHostDevices(driver, vm->def); - - if (driver->securityDriver && - driver->securityDriver->domainRestoreSecurityAllLabel) - driver->securityDriver->domainRestoreSecurityAllLabel(vm, 0); - if (driver->securityDriver && - driver->securityDriver->domainReleaseSecurityLabel) - driver->securityDriver->domainReleaseSecurityLabel(vm); - qemuRemoveCgroup(driver, vm, 1); - if (logfile != -1) - close(logfile); - vm->def->id = -1; - return -1; - + /* We jump here if we failed to start the VM for any reason */ abort: /* We jump here if we failed to initialize the now running VM * killing it off and pretend we never started it */
Agree with the proposed change being safe, but it is incomplete. Now that cleanup: has no code, but falls through immediately to abort:, I'd rather see these merged into one label. Probably cleanup: is the better name, which means changing all the 'goto abort;'.
I've pushed the first 3 patches, sending a v2 of this one with your recommended changes. Thanks, Cole