[PATCH v2 1/2] qemu: process: Split out the statement to handle the qemu is allowed to reboot

Masayoshi Mizuma msys.mizuma at gmail.com
Mon Aug 30 04:30:42 UTC 2021


From: Masayoshi Mizuma <m.mizuma at jp.fujitsu.com>

Split out the statement to handle whether the qemu is allowed to reboot
or not. So that it gets available for the later patch.

Signed-off-by: Masayoshi Mizuma <m.mizuma at jp.fujitsu.com>
---
 src/qemu/qemu_process.c | 17 +++++++++++++----
 src/qemu/qemu_process.h |  2 ++
 2 files changed, 15 insertions(+), 4 deletions(-)

diff --git a/src/qemu/qemu_process.c b/src/qemu/qemu_process.c
index 3b4af61bf8..f4e67c70ad 100644
--- a/src/qemu/qemu_process.c
+++ b/src/qemu/qemu_process.c
@@ -6360,6 +6360,18 @@ qemuProcessPrepareHostHostdevs(virDomainObj *vm)
     return 0;
 }
 
+bool
+qemuProcessRebootAllowed(const virDomainDef *def)
+{
+    if (def->onReboot == VIR_DOMAIN_LIFECYCLE_ACTION_DESTROY &&
+        def->onPoweroff == VIR_DOMAIN_LIFECYCLE_ACTION_DESTROY &&
+        (def->onCrash == VIR_DOMAIN_LIFECYCLE_ACTION_DESTROY ||
+         def->onCrash == VIR_DOMAIN_LIFECYCLE_ACTION_COREDUMP_DESTROY)) {
+        return false;
+    } else {
+        return true;
+    }
+}
 
 static void
 qemuProcessPrepareAllowReboot(virDomainObj *vm)
@@ -6375,10 +6387,7 @@ qemuProcessPrepareAllowReboot(virDomainObj *vm)
     if (priv->allowReboot != VIR_TRISTATE_BOOL_ABSENT)
         return;
 
-    if (def->onReboot == VIR_DOMAIN_LIFECYCLE_ACTION_DESTROY &&
-        def->onPoweroff == VIR_DOMAIN_LIFECYCLE_ACTION_DESTROY &&
-        (def->onCrash == VIR_DOMAIN_LIFECYCLE_ACTION_DESTROY ||
-         def->onCrash == VIR_DOMAIN_LIFECYCLE_ACTION_COREDUMP_DESTROY)) {
+    if (!qemuProcessRebootAllowed(def)) {
         priv->allowReboot = VIR_TRISTATE_BOOL_NO;
     } else {
         priv->allowReboot = VIR_TRISTATE_BOOL_YES;
diff --git a/src/qemu/qemu_process.h b/src/qemu/qemu_process.h
index 93103eb530..f9fa140e6d 100644
--- a/src/qemu/qemu_process.h
+++ b/src/qemu/qemu_process.h
@@ -242,3 +242,5 @@ void qemuProcessQMPFree(qemuProcessQMP *proc);
 G_DEFINE_AUTOPTR_CLEANUP_FUNC(qemuProcessQMP, qemuProcessQMPFree);
 
 int qemuProcessQMPStart(qemuProcessQMP *proc);
+
+bool qemuProcessRebootAllowed(const virDomainDef *def);
-- 
2.27.0




More information about the libvir-list mailing list