[libvirt] [PATCH] qemu: Allow migration with host USB devices
Michal Privoznik
mprivozn at redhat.com
Fri Oct 19 12:37:57 UTC 2012
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
More information about the libvir-list
mailing list