From: Paolo Bonzini <pbonzini(a)gnu.org>
This is yet another try on fixing migration of paused vms. Since the
driver-only solution didn't work out, I'm now fixing it directly in
libvirt.c.
The first two patches are the same as for the previous series. The
first is a bugfix for failed migration for the QEMU driver; the second
adds a "virsh migrate --suspend" option to leave the VM not running
on the destination machine.
As in the previous version of the patch, --suspend/VIR_MIGRATE_PAUSED
is the bulk of implementing the new feature. I just query the domain
state and, if it is paused, I implicitly add the VIR_MIGRATE_PAUSED
flag to the migration. This is the third patch.
I thought about transmitting the state in the end (since it works well
if VIR_MIGRATE_PAUSED is passed only to MigrateFinish and not to
MigratePerform), but I don't think it's a good idea to commit it
now as it's basically untestable. It's in the fourth patch, but if
you want it now and think the approach is sound, tell me and I'll
test it more heavily.