diff options
author | Vladimir Sementsov-Ogievskiy <vsementsov@virtuozzo.com> | 2017-12-28 12:16:16 +0300 |
---|---|---|
committer | Juan Quintela <quintela@redhat.com> | 2018-01-15 12:48:05 +0100 |
commit | 1f8956041ad3851c28f0e3f6ee023d3bcc55ca50 (patch) | |
tree | 01f1049a16b998ac4008a2b853c2d658ddb86914 | |
parent | bae416e5ba65701d3c5238164517158066d615e5 (diff) |
migration: finalize current_migration object
current_migration has .instance_finalize callback, but it is not
called, because nobody unrefs current_migration. Fix that.
Signed-off-by: Vladimir Sementsov-Ogievskiy <vsementsov@virtuozzo.com>
Reviewed-by: Peter Xu <peterx@redhat.com>
Reviewed-by: Juan Quintela <quintela@redhat.com>
Signed-off-by: Juan Quintela <quintela@redhat.com>
-rw-r--r-- | include/migration/misc.h | 1 | ||||
-rw-r--r-- | migration/migration.c | 5 | ||||
-rw-r--r-- | vl.c | 1 |
3 files changed, 7 insertions, 0 deletions
diff --git a/include/migration/misc.h b/include/migration/misc.h index c079b7771b..77fd4f587c 100644 --- a/include/migration/misc.h +++ b/include/migration/misc.h @@ -44,6 +44,7 @@ void dump_vmstate_json_to_file(FILE *out_fp); /* migration/migration.c */ void migration_object_init(void); +void migration_object_finalize(void); void qemu_start_incoming_migration(const char *uri, Error **errp); bool migration_is_idle(void); void add_migration_state_change_notifier(Notifier *notify); diff --git a/migration/migration.c b/migration/migration.c index 17cc219da2..7a77b193c1 100644 --- a/migration/migration.c +++ b/migration/migration.c @@ -132,6 +132,11 @@ void migration_object_init(void) } } +void migration_object_finalize(void) +{ + object_unref(OBJECT(current_migration)); +} + /* For outgoing */ MigrationState *migrate_get_current(void) { @@ -4792,6 +4792,7 @@ int main(int argc, char **argv, char **envp) monitor_cleanup(); qemu_chr_cleanup(); user_creatable_cleanup(); + migration_object_finalize(); /* TODO: unref root container, check all devices are ok */ return 0; |