From 7f602b8291e97005b7533953e9b1470622e53eec Mon Sep 17 00:00:00 2001 From: Pavel Hrdina Date: Mon, 13 Feb 2017 15:34:16 +0100 Subject: [PATCH] qemu_driver: move iothread duplicate check into one place Signed-off-by: Pavel Hrdina --- src/conf/domain_conf.c | 7 ------- src/qemu/qemu_driver.c | 29 ++++++++++++++++++++++------- 2 files changed, 22 insertions(+), 14 deletions(-) diff --git a/src/conf/domain_conf.c b/src/conf/domain_conf.c index 128dddbfbd..ea2cd0eed7 100644 --- a/src/conf/domain_conf.c +++ b/src/conf/domain_conf.c @@ -20212,13 +20212,6 @@ virDomainIOThreadIDAdd(virDomainDefPtr def, { virDomainIOThreadIDDefPtr iothrid = NULL; - if (virDomainIOThreadIDFind(def, iothread_id)) { - virReportError(VIR_ERR_INTERNAL_ERROR, - _("cannot duplicate iothread_id '%u' in iothreadids"), - iothread_id); - return NULL; - } - if (VIR_ALLOC(iothrid) < 0) goto error; diff --git a/src/qemu/qemu_driver.c b/src/qemu/qemu_driver.c index 013add5e9b..da9f10e65e 100644 --- a/src/qemu/qemu_driver.c +++ b/src/qemu/qemu_driver.c @@ -5584,13 +5584,6 @@ qemuDomainHotplugAddIOThread(virQEMUDriverPtr driver, qemuMonitorIOThreadInfoPtr *new_iothreads = NULL; virDomainIOThreadIDDefPtr iothrid; - if (virDomainIOThreadIDFind(vm->def, iothread_id)) { - virReportError(VIR_ERR_INVALID_ARG, - _("an IOThread is already using iothread_id '%u'"), - iothread_id); - goto cleanup; - } - if (virAsprintf(&alias, "iothread%u", iothread_id) < 0) return -1; @@ -5726,6 +5719,22 @@ qemuDomainHotplugDelIOThread(virQEMUDriverPtr driver, goto cleanup; } + +static int +qemuDomainAddIOThreadCheck(virDomainDefPtr def, + unsigned int iothread_id) +{ + if (virDomainIOThreadIDFind(def, iothread_id)) { + virReportError(VIR_ERR_INVALID_ARG, + _("an IOThread is already using iothread_id '%u'"), + iothread_id); + return -1; + } + + return 0; +} + + static int qemuDomainDelIOThreadCheck(virDomainDefPtr def, unsigned int iothread_id) @@ -5793,6 +5802,9 @@ qemuDomainChgIOThread(virQEMUDriverPtr driver, } if (add) { + if (qemuDomainAddIOThreadCheck(def, iothread_id) < 0) + goto endjob; + if (qemuDomainHotplugAddIOThread(driver, vm, iothread_id) < 0) goto endjob; } else { @@ -5809,6 +5821,9 @@ qemuDomainChgIOThread(virQEMUDriverPtr driver, if (persistentDef) { if (add) { + if (qemuDomainAddIOThreadCheck(persistentDef, iothread_id) < 0) + goto endjob; + if (!virDomainIOThreadIDAdd(persistentDef, iothread_id)) goto endjob; -- GitLab