]> xenbits.xensource.com Git - qemu-xen.git/commitdiff
migration: finalize current_migration object
authorVladimir Sementsov-Ogievskiy <vsementsov@virtuozzo.com>
Thu, 28 Dec 2017 09:16:16 +0000 (12:16 +0300)
committerJuan Quintela <quintela@redhat.com>
Mon, 15 Jan 2018 11:48:05 +0000 (12:48 +0100)
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>
include/migration/misc.h
migration/migration.c
vl.c

index c079b7771b72fd2607c057a0ff5c89da19a98cc8..77fd4f587c3ce772067256cd49f52c185add7ae1 100644 (file)
@@ -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);
index 17cc219da2221707780dd2d1b214461a8108d23b..7a77b193c1100b7d1b0f5973e8ace357f8a860e3 100644 (file)
@@ -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 444b7507da5f2fb9db5a0198d62b025408088369..f1c52fe9fe7fa534e6ac8aff5d4e94153bf68543 100644 (file)
--- 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;