]> xenbits.xensource.com Git - libvirt.git/commitdiff
Reset migration source after failed VM start
authorDaniel P. Berrange <berrange@redhat.com>
Wed, 10 Oct 2007 19:46:17 +0000 (19:46 +0000)
committerDaniel P. Berrange <berrange@redhat.com>
Wed, 10 Oct 2007 19:46:17 +0000 (19:46 +0000)
ChangeLog
src/qemu_driver.c

index ea1a17963b3e01beee22bb9919208c8236c91028..ec241182c43822b95bdd468cc0ddca992fd5ae6f 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,8 @@
+Wed Oct 10 15:44:53 EST 2007 Daniel P. Berrange <berrange@redhat.com>
+
+       * src/qemu_driver.c: Reset migration source after failed attempt
+       to start a VM. (Jim Paris)
+
 Wed Oct 10 13:48:53 EST 2007 Daniel P. Berrange <berrange@redhat.com>
 
        * src/xm_internal.c: Fixed procesing of vncunused, and vncdisplay
index 87b66ad98d44674821e54a1cbb8de4e476c956fb..bff17b0d10a7769d268eb31d054b89c7bc6f0533 100644 (file)
@@ -2083,6 +2083,7 @@ static int qemudDomainRestore(virConnectPtr conn,
     struct qemud_vm_def *def;
     struct qemud_vm *vm;
     int fd;
+    int ret;
     char *xml;
     struct qemud_save_header header;
 
@@ -2161,18 +2162,17 @@ static int qemudDomainRestore(virConnectPtr conn,
     /* Set the migration source and start it up. */
     snprintf(vm->migrateFrom, sizeof(vm->migrateFrom), "stdio");
     vm->stdin = fd;
-
-    if (qemudStartVMDaemon(conn, driver, vm) < 0) {
+    ret = qemudStartVMDaemon(conn, driver, vm);
+    close(fd);
+    vm->migrateFrom[0] = '\0';
+    vm->stdin = -1;
+    if (ret < 0) {
         qemudReportError(conn, NULL, NULL, VIR_ERR_OPERATION_FAILED,
                          "failed to start VM");
         if (!vm->configFile[0])
             qemudRemoveInactiveVM(driver, vm);
-        close(fd);
         return -1;
     }
-    close(fd);
-    vm->migrateFrom[0] = '\0';
-    vm->stdin = -1;
 
     /* If it was running before, resume it now. */
     if (header.was_running) {