We're about to add a new state "modify" and thus the function
goes from just Add/Del. Use an enum to manage.
Extracted from code originally posted by Pavel Hrdina
, but placed into a separate patch.
Signed-off-by: John Ferlan
---
src/qemu/qemu_driver.c | 32 +---
1 file changed, 25 insertions(+), 7 deletions(-)
diff --git a/src/qemu/qemu_driver.c b/src/qemu/qemu_driver.c
index ff87865fe6..ff466df4b7 100644
--- a/src/qemu/qemu_driver.c
+++ b/src/qemu/qemu_driver.c
@@ -6015,11 +6015,16 @@ qemuDomainDelIOThreadCheck(virDomainDefPtr def,
return 0;
}
+typedef enum {
+VIR_DOMAIN_IOTHREAD_ACTION_ADD,
+VIR_DOMAIN_IOTHREAD_ACTION_DEL,
+} virDomainIOThreadAction;
+
static int
qemuDomainChgIOThread(virQEMUDriverPtr driver,
virDomainObjPtr vm,
unsigned int iothread_id,
- bool add,
+ virDomainIOThreadAction action,
unsigned int flags)
{
virQEMUDriverConfigPtr cfg = NULL;
@@ -6045,18 +6050,24 @@ qemuDomainChgIOThread(virQEMUDriverPtr driver,
goto endjob;
}
-if (add) {
+switch (action) {
+case VIR_DOMAIN_IOTHREAD_ACTION_ADD:
if (qemuDomainAddIOThreadCheck(def, iothread_id) < 0)
goto endjob;
if (qemuDomainHotplugAddIOThread(driver, vm, iothread_id) < 0)
goto endjob;
-} else {
+
+break;
+
+case VIR_DOMAIN_IOTHREAD_ACTION_DEL:
if (qemuDomainDelIOThreadCheck(def, iothread_id) < 0)
goto endjob;
if (qemuDomainHotplugDelIOThread(driver, vm, iothread_id) < 0)
goto endjob;
+
+break;
}
if (virDomainSaveStatus(driver->xmlopt, cfg->stateDir, vm,
driver->caps) < 0)
@@ -6064,18 +6075,23 @@ qemuDomainChgIOThread(virQEMUDriverPtr driver,
}
if (persistentDef) {
-if (add) {
+switch (action) {
+case VIR_DOMAIN_IOTHREAD_ACTION_ADD:
if (qemuDomainAddIOThreadCheck(persistentDef, iothread_id) < 0)
goto endjob;
if (!virDomainIOThreadIDAdd(persistentDef, iothread_id))
goto endjob;
-} else {
+break;
+
+case VIR_DOMAIN_IOTHREAD_ACTION_DEL:
if (qemuDomainDelIOThreadCheck(persistentDef, iothread_id) < 0)
goto endjob;
virDomainIOThreadIDDel(persistentDef, iothread_id);
+
+break;
}
if (virDomainSaveConfig(cfg->configDir, driver->caps,
@@ -6117,7 +6133,8 @@ qemuDomainAddIOThread(virDomainPtr dom,
if (virDomainAddIOThreadEnsureACL(dom->conn, vm->def, flags) < 0)
goto cleanup;
-ret = qemuDomainChgIOThread(driver, vm, iothread_id, true, flags);
+ret = qemuDomainChgIOThread(driver, vm, iothread_id,
+VIR_DOMAIN_IOTHREAD_ACTION_ADD, flags);
cleanup:
virDomainObjEndAPI(&vm);
@@ -6149,7 +6166,8 @@ qemuDomainDelIOThread(virDomainPtr dom,
if (virDomainDelIOThreadEnsureACL(dom->conn, vm->def, flags) < 0)
goto cleanup;
-ret = qemuDomainChgIOThread(driver, vm, iothread_id, false, flags);
+ret = qemuDomainChgIOThread(driver, vm, iothread_id,
+VIR_DOMAIN_IOTHREAD_ACTION_DEL, flags);
cleanup:
virDomainObjEndAPI(&vm);
--
2.17.1
--
libvir-list mailing list
libvir-list@redhat.com
https://www.redhat.com/mailman/listinfo/libvir-list