Signed-off-by: Pavel Hrdina <phrdina@xxxxxxxxxx> --- 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 a70084658a..8b4e54d574 100644 --- a/src/conf/domain_conf.c +++ b/src/conf/domain_conf.c @@ -20241,13 +20241,6 @@ virDomainIOThreadIDAdd(virDomainDefPtr def, virDomainIOThreadIDDefPtr iothrid = NULL; int pos; - 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 1c3db4e13f..ce2f8ff8bd 100644 --- a/src/qemu/qemu_driver.c +++ b/src/qemu/qemu_driver.c @@ -5582,13 +5582,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; @@ -5724,6 +5717,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) @@ -5792,6 +5801,9 @@ qemuDomainChgIOThread(virQEMUDriverPtr driver, } if (add) { + if (qemuDomainAddIOThreadCheck(def, iothread_id) < 0) + goto endjob; + if (qemuDomainHotplugAddIOThread(driver, vm, iothread_id) < 0) goto endjob; } else { @@ -5808,6 +5820,9 @@ qemuDomainChgIOThread(virQEMUDriverPtr driver, if (persistentDef) { if (add) { + if (qemuDomainAddIOThreadCheck(persistentDef, iothread_id) < 0) + goto endjob; + if (!virDomainIOThreadIDAdd(persistentDef, iothread_id)) goto endjob; -- 2.11.1 -- libvir-list mailing list libvir-list@xxxxxxxxxx https://www.redhat.com/mailman/listinfo/libvir-list