This follows the same check for disk, because we cannot remove iothread
if it's used by disk or by controller. It could lead to crashing QEMU.
Signed-off-by: Pavel Hrdina <phrdina(a)redhat.com>
---
src/qemu/qemu_driver.c | 11 +++++++++++
1 file changed, 11 insertions(+)
diff --git a/src/qemu/qemu_driver.c b/src/qemu/qemu_driver.c
index 03fea2713d..1c3db4e13f 100644
--- a/src/qemu/qemu_driver.c
+++ b/src/qemu/qemu_driver.c
@@ -5747,6 +5747,17 @@ qemuDomainDelIOThreadCheck(virDomainDefPtr def,
}
}
+ for (i = 0; i < def->ncontrollers; i++) {
+ if (def->controllers[i]->iothread == iothread_id) {
+ const char *model =
virDomainControllerModelSCSITypeToString(def->controllers[i]->model);
+ virReportError(VIR_ERR_INVALID_ARG,
+ _("cannot remove IOThread '%u' since it "
+ "is being used by controller '%s'"),
+ iothread_id, model);
+ return -1;
+ }
+ }
+
return 0;
}
--
2.11.1