From: Bihong Yu Date: Mon, 25 Oct 2021 09:04:54 +0000 (+0800) Subject: qemu_process: set fakereboot flags false after processing fakereboot over X-Git-Tag: v7.10.0-rc1~161 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=83ce9ec0a71f5d7e5822605d610759e336c3c654;p=thirdparty%2Flibvirt.git qemu_process: set fakereboot flags false after processing fakereboot over During the vm rebooting, the vm could be shut down if the libvirtd is restarted for some reason, which is not expected. We move set fakereboot flags false after processing fakereboot over, so we can ensure that fakereboot process have been executed. Signed-off-by: Bihong Yu Reviewed-by: Michal Privoznik --- diff --git a/src/qemu/qemu_process.c b/src/qemu/qemu_process.c index d5f8a47ac2..be75e4d8eb 100644 --- a/src/qemu/qemu_process.c +++ b/src/qemu/qemu_process.c @@ -523,6 +523,7 @@ qemuProcessFakeReboot(void *opaque) cleanup: priv->pausedShutdown = false; + qemuDomainSetFakeReboot(driver, vm, false); if (ret == -1) ignore_value(qemuProcessKill(vm, VIR_QEMU_PROCESS_KILL_FORCE)); virDomainObjEndAPI(&vm); @@ -540,7 +541,6 @@ qemuProcessShutdownOrReboot(virQEMUDriver *driver, g_autofree char *name = g_strdup_printf("reboot-%s", vm->def->name); virThread th; - qemuDomainSetFakeReboot(driver, vm, false); virObjectRef(vm); if (virThreadCreateFull(&th, false, @@ -551,6 +551,7 @@ qemuProcessShutdownOrReboot(virQEMUDriver *driver, VIR_ERROR(_("Failed to create reboot thread, killing domain")); ignore_value(qemuProcessKill(vm, VIR_QEMU_PROCESS_KILL_NOWAIT)); priv->pausedShutdown = false; + qemuDomainSetFakeReboot(driver, vm, false); virObjectUnref(vm); } } else {