diff --git a/src/qemu/qemu_migration.c b/src/qemu/qemu_migration.c index 29f5173b1f..b597c80ee2 100644 --- a/src/qemu/qemu_migration.c +++ b/src/qemu/qemu_migration.c @@ -2385,7 +2385,7 @@ qemuMigrationWaitForCompletion(virQEMUDriverPtr driver, jobInfo->type = VIR_DOMAIN_JOB_UNBOUNDED; - while (jobInfo->type == VIR_DOMAIN_JOB_UNBOUNDED) { + while (1) { /* Poll every 50ms for progress & to allow cancellation */ struct timespec ts = { .tv_sec = 0, .tv_nsec = 50 * 1000 * 1000ull }; @@ -2407,6 +2407,9 @@ qemuMigrationWaitForCompletion(virQEMUDriverPtr driver, break; } + if (jobInfo->type != VIR_DOMAIN_JOB_UNBOUNDED) + break; + virObjectUnlock(vm); nanosleep(&ts, NULL);