From d1e460136a8ad1ce7717d2d75cd878812f63f1bb Mon Sep 17 00:00:00 2001 From: Shanzhi Yu <shyu@redhat.com> Date: Wed, 3 Dec 2014 19:12:35 +0800 Subject: [PATCH] qemu: snapshot: Forbid internal snapshot with passthrough devices When attempting to create internal system checkpoint with a passthrough device qemu will report the following error: error: operation failed: Error -22 while writing VM This patch calls the function to check if migration is possible with given VM and thus improves the error to: error: Requested operation is not valid: domain has assigned non-USB host devices Resolves: https://bugzilla.redhat.com/show_bug.cgi?id=874418#c19 Signed-off-by: Peter Krempa <pkrempa@redhat.com> --- src/qemu/qemu_driver.c | 3 +++ 1 file changed, 3 insertions(+) diff --git a/src/qemu/qemu_driver.c b/src/qemu/qemu_driver.c index b9935e4a7a..9152cf5e95 100644 --- a/src/qemu/qemu_driver.c +++ b/src/qemu/qemu_driver.c @@ -12885,6 +12885,9 @@ qemuDomainSnapshotCreateActiveInternal(virConnectPtr conn, bool resume = false; int ret = -1; + if (!qemuMigrationIsAllowed(driver, vm, vm->def, false, false)) + goto cleanup; + if (virDomainObjGetState(vm, NULL) == VIR_DOMAIN_RUNNING) { /* savevm monitor command pauses the domain emitting an event which * confuses libvirt since it's not notified when qemu resumes the