aboutsummaryrefslogtreecommitdiff
path: root/migration
diff options
context:
space:
mode:
authorCédric Le Goater <clg@redhat.com>2024-03-04 13:28:27 +0100
committerPeter Xu <peterx@redhat.com>2024-03-11 14:41:40 -0400
commite6e08e83239a067449b9698874c7547164a38414 (patch)
tree8095c8d7d4d69df079fd0773f9080343b70faf24 /migration
parentee8bb867ec48085404e6282e8f53f8446261cb84 (diff)
migration: Do not call PRECOPY_NOTIFY_SETUP notifiers in case of error
When commit bd2270608fa0 ("migration/ram.c: add a notifier chain for precopy") added PRECOPY_NOTIFY_SETUP notifiers at the end of qemu_savevm_state_setup(), it didn't take into account a possible error in the loop calling vmstate_save() or .save_setup() handlers. Check ret value before calling the notifiers. Reviewed-by: Peter Xu <peterx@redhat.com> Signed-off-by: Cédric Le Goater <clg@redhat.com> Link: https://lore.kernel.org/r/20240304122844.1888308-10-clg@redhat.com Signed-off-by: Peter Xu <peterx@redhat.com>
Diffstat (limited to 'migration')
-rw-r--r--migration/savevm.c6
1 files changed, 5 insertions, 1 deletions
diff --git a/migration/savevm.c b/migration/savevm.c
index e84b26e1c8..76b57a9888 100644
--- a/migration/savevm.c
+++ b/migration/savevm.c
@@ -1317,7 +1317,7 @@ void qemu_savevm_state_setup(QEMUFile *f)
MigrationState *ms = migrate_get_current();
SaveStateEntry *se;
Error *local_err = NULL;
- int ret;
+ int ret = 0;
json_writer_int64(ms->vmdesc, "page_size", qemu_target_page_size());
json_writer_start_array(ms->vmdesc, "devices");
@@ -1351,6 +1351,10 @@ void qemu_savevm_state_setup(QEMUFile *f)
}
}
+ if (ret) {
+ return;
+ }
+
if (precopy_notify(PRECOPY_NOTIFY_SETUP, &local_err)) {
error_report_err(local_err);
}