diff --git a/ChangeLog b/ChangeLog index ea1a17963b3e01beee22bb9919208c8236c91028..ec241182c43822b95bdd468cc0ddca992fd5ae6f 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,8 @@ +Wed Oct 10 15:44:53 EST 2007 Daniel P. Berrange + + * 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 * src/xm_internal.c: Fixed procesing of vncunused, and vncdisplay diff --git a/src/qemu_driver.c b/src/qemu_driver.c index 87b66ad98d44674821e54a1cbb8de4e476c956fb..bff17b0d10a7769d268eb31d054b89c7bc6f0533 100644 --- a/src/qemu_driver.c +++ b/src/qemu_driver.c @@ -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) {