aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorVladimir Sementsov-Ogievskiy <vsementsov@virtuozzo.com>2017-12-28 12:16:16 +0300
committerJuan Quintela <quintela@redhat.com>2018-01-15 12:48:05 +0100
commit1f8956041ad3851c28f0e3f6ee023d3bcc55ca50 (patch)
tree01f1049a16b998ac4008a2b853c2d658ddb86914
parentbae416e5ba65701d3c5238164517158066d615e5 (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.h1
-rw-r--r--migration/migration.c5
-rw-r--r--vl.c1
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)
{
diff --git a/vl.c b/vl.c
index 444b7507da..f1c52fe9fe 100644
--- a/vl.c
+++ b/vl.c
@@ -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;