提交 7f602b82 编写于 作者: P Pavel Hrdina

qemu_driver: move iothread duplicate check into one place

Signed-off-by: NPavel Hrdina <phrdina@redhat.com>
上级 99f00fb8
......@@ -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;
......
......@@ -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;
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册