diff --git a/src/qemu/qemu_driver.c b/src/qemu/qemu_driver.c index 6fe5a43aeb..acba485309 100644 --- a/src/qemu/qemu_driver.c +++ b/src/qemu/qemu_driver.c @@ -5498,16 +5498,9 @@ qemuDomainGetIOThreadsMon(virQEMUDriverPtr driver, virDomainObjPtr vm, qemuMonitorIOThreadInfoPtr **iothreads) { - qemuDomainObjPrivatePtr priv; + qemuDomainObjPrivatePtr priv = vm->privateData; int niothreads = 0; - priv = vm->privateData; - if (!virQEMUCapsGet(priv->qemuCaps, QEMU_CAPS_OBJECT_IOTHREAD)) { - virReportError(VIR_ERR_CONFIG_UNSUPPORTED, "%s", - _("IOThreads not supported with this binary")); - return -1; - } - qemuDomainObjEnterMonitor(driver, vm); niothreads = qemuMonitorGetIOThreads(priv->mon, iothreads); if (qemuDomainObjExitMonitor(driver, vm) < 0 || niothreads < 0) @@ -5522,6 +5515,7 @@ qemuDomainGetIOThreadsLive(virQEMUDriverPtr driver, virDomainObjPtr vm, virDomainIOThreadInfoPtr **info) { + qemuDomainObjPrivatePtr priv; qemuMonitorIOThreadInfoPtr *iothreads = NULL; virDomainIOThreadInfoPtr *info_ret = NULL; int niothreads = 0; @@ -5537,6 +5531,13 @@ qemuDomainGetIOThreadsLive(virQEMUDriverPtr driver, goto endjob; } + priv = vm->privateData; + if (!virQEMUCapsGet(priv->qemuCaps, QEMU_CAPS_OBJECT_IOTHREAD)) { + virReportError(VIR_ERR_CONFIG_UNSUPPORTED, "%s", + _("IOThreads not supported with this binary")); + goto endjob; + } + if ((niothreads = qemuDomainGetIOThreadsMon(driver, vm, &iothreads)) < 0) goto endjob; @@ -20882,6 +20883,7 @@ qemuDomainGetStatsIOThread(virQEMUDriverPtr driver, int *maxparams, unsigned int privflags ATTRIBUTE_UNUSED) { + qemuDomainObjPrivatePtr priv = dom->privateData; size_t i; qemuMonitorIOThreadInfoPtr *iothreads = NULL; int niothreads; @@ -20890,6 +20892,9 @@ qemuDomainGetStatsIOThread(virQEMUDriverPtr driver, if (!virDomainObjIsActive(dom)) return 0; + if (!virQEMUCapsGet(priv->qemuCaps, QEMU_CAPS_OBJECT_IOTHREAD)) + return 0; + if ((niothreads = qemuDomainGetIOThreadsMon(driver, dom, &iothreads)) < 0) return -1;