]> git.proxmox.com Git - mirror_qemu.git/commitdiff
migration: provide an error message to migration_cancel()
authorLaurent Vivier <lvivier@redhat.com>
Wed, 29 Sep 2021 14:43:10 +0000 (16:43 +0200)
committerJuan Quintela <quintela@trasno.org>
Wed, 3 Nov 2021 08:38:53 +0000 (09:38 +0100)
This avoids to call migrate_get_current() in the caller function
whereas migration_cancel() already needs the pointer to the current
migration state.

Signed-off-by: Laurent Vivier <lvivier@redhat.com>
Reviewed-by: Juan Quintela <quintela@redhat.com>
Signed-off-by: Juan Quintela <quintela@redhat.com>
migration/migration.c
migration/migration.h
migration/ram.c

index 53b9a8af9673fdcdc61c6f7aab2ce6cce166b0a8..ec3d87f0a97c1881b04786e375ba47e79b60eb12 100644 (file)
@@ -215,8 +215,11 @@ void migration_object_init(void)
     dirty_bitmap_mig_init();
 }
 
-void migration_cancel(void)
+void migration_cancel(const Error *error)
 {
+    if (error) {
+        migrate_set_error(current_migration, error);
+    }
     migrate_fd_cancel(current_migration);
 }
 
@@ -226,7 +229,7 @@ void migration_shutdown(void)
      * Cancel the current migration - that will (eventually)
      * stop the migration using this structure
      */
-    migration_cancel();
+    migration_cancel(NULL);
     object_unref(OBJECT(current_migration));
 
     /*
@@ -2334,7 +2337,7 @@ void qmp_migrate(const char *uri, bool has_blk, bool blk,
 
 void qmp_migrate_cancel(Error **errp)
 {
-    migration_cancel();
+    migration_cancel(NULL);
 }
 
 void qmp_migrate_continue(MigrationStatus state, Error **errp)
index 7a5aa8c2fddeca1ea3d23db962b66562a466f0a2..8130b703eb958e0c5091151ca6c775bbce0ec3f6 100644 (file)
@@ -388,7 +388,7 @@ int foreach_not_ignored_block(RAMBlockIterFunc func, void *opaque);
 void migration_make_urgent_request(void);
 void migration_consume_urgent_request(void);
 bool migration_rate_limit(void);
-void migration_cancel(void);
+void migration_cancel(const Error *error);
 
 void populate_vfio_info(MigrationInfo *info);
 
index 680a5158aacd4f7ddd54fb1100d004367790f81b..f5d39db4e4a0af0fc428d96d1da93713f89ccd6e 100644 (file)
@@ -4323,9 +4323,8 @@ static void ram_mig_ram_block_resized(RAMBlockNotifier *n, void *host,
          * Abort and indicate a proper reason.
          */
         error_setg(&err, "RAM block '%s' resized during precopy.", rb->idstr);
-        migrate_set_error(migrate_get_current(), err);
+        migration_cancel(err);
         error_free(err);
-        migration_cancel();
     }
 
     switch (ps) {