On 19.10.2012 14:21, Jiri Denemark wrote: > Recently, patches were added support for (managed)saving, restoring, and > migrating domains with host USB devices. However, qemu driver would > still forbid migration of such domains because qemuMigrationIsAllowed > was not updated. > --- > src/qemu/qemu_migration.c | 22 +++++++++++++++++++--- > 1 file changed, 19 insertions(+), 3 deletions(-) > > diff --git a/src/qemu/qemu_migration.c b/src/qemu/qemu_migration.c > index 65cd6ec..a2402ce 100644 > --- a/src/qemu/qemu_migration.c > +++ b/src/qemu/qemu_migration.c > @@ -800,6 +800,8 @@ qemuMigrationIsAllowed(struct qemud_driver *driver, virDomainObjPtr vm, > virDomainDefPtr def) > { > int nsnapshots; > + bool forbid; > + int i; > > if (vm) { > if (qemuProcessAutoDestroyActive(driver, vm)) { > @@ -817,9 +819,23 @@ qemuMigrationIsAllowed(struct qemud_driver *driver, virDomainObjPtr vm, > > def = vm->def; > } > - if (def->nhostdevs > 0) { > - virReportError(VIR_ERR_OPERATION_INVALID, > - "%s", _("Domain with assigned host devices cannot be migrated")); > + > + /* Migration with USB host devices is allowed, all other devices are > + * forbidden. > + */ > + forbid = false; > + for (i = 0; i < def->nhostdevs; i++) { > + virDomainHostdevDefPtr hostdev = def->hostdevs[i]; > + if (hostdev->mode != VIR_DOMAIN_HOSTDEV_MODE_SUBSYS || > + hostdev->source.subsys.type != VIR_DOMAIN_HOSTDEV_SUBSYS_TYPE_USB) { > + forbid = true; > + break; > + } > + } > + if (forbid) { > + virReportError(VIR_ERR_OPERATION_INVALID, "%s", > + _("Domain with assigned non-USB host devices " > + "cannot be migrated")); > return false; > } > > ACK Michal -- libvir-list mailing list libvir-list@xxxxxxxxxx https://www.redhat.com/mailman/listinfo/libvir-list