mirror of https://gitee.com/openkylin/qemu.git
migration: Allow reset of postcopy_recover_triggered when failed
It's possible qemu_start_incoming_migration() failed at any point, when it happens we should reset postcopy_recover_triggered to false so that the user can still retry with a saner incoming port. Signed-off-by: Peter Xu <peterx@redhat.com> Message-Id: <20210629181356.217312-3-peterx@redhat.com> Reviewed-by: Dr. David Alan Gilbert <dgilbert@redhat.com> Signed-off-by: Dr. David Alan Gilbert <dgilbert@redhat.com>
This commit is contained in:
parent
cc48c587d2
commit
b7f9afd48e
|
@ -2097,6 +2097,13 @@ void qmp_migrate_recover(const char *uri, Error **errp)
|
||||||
{
|
{
|
||||||
MigrationIncomingState *mis = migration_incoming_get_current();
|
MigrationIncomingState *mis = migration_incoming_get_current();
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Don't even bother to use ERRP_GUARD() as it _must_ always be set by
|
||||||
|
* callers (no one should ignore a recover failure); if there is, it's a
|
||||||
|
* programming error.
|
||||||
|
*/
|
||||||
|
assert(errp);
|
||||||
|
|
||||||
if (mis->state != MIGRATION_STATUS_POSTCOPY_PAUSED) {
|
if (mis->state != MIGRATION_STATUS_POSTCOPY_PAUSED) {
|
||||||
error_setg(errp, "Migrate recover can only be run "
|
error_setg(errp, "Migrate recover can only be run "
|
||||||
"when postcopy is paused.");
|
"when postcopy is paused.");
|
||||||
|
@ -2115,6 +2122,12 @@ void qmp_migrate_recover(const char *uri, Error **errp)
|
||||||
* to continue using that newly established channel.
|
* to continue using that newly established channel.
|
||||||
*/
|
*/
|
||||||
qemu_start_incoming_migration(uri, errp);
|
qemu_start_incoming_migration(uri, errp);
|
||||||
|
|
||||||
|
/* Safe to dereference with the assert above */
|
||||||
|
if (*errp) {
|
||||||
|
/* Reset the flag so user could still retry */
|
||||||
|
qatomic_set(&mis->postcopy_recover_triggered, false);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
void qmp_migrate_pause(Error **errp)
|
void qmp_migrate_pause(Error **errp)
|
||||||
|
|
Loading…
Reference in New Issue