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 <phrd...@redhat.com>, but placed into a separate patch. Signed-off-by: John Ferlan <jfer...@redhat.com> --- 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