aboutsummaryrefslogtreecommitdiff
path: root/migration
diff options
context:
space:
mode:
authorJuan Quintela <quintela@redhat.com>2017-04-17 14:57:54 +0200
committerJuan Quintela <quintela@redhat.com>2017-05-17 12:04:59 +0200
commit1bfe5f0586083747f1602931713111673849cd9d (patch)
treee70808d8e82700a8871ec9387835574e7ea5944d /migration
parentbac3b21218925006e1f7d3cae564afb1e9aeb8ee (diff)
migration: Move check_migratable() into qdev.c
The function is only used once, and nothing else in migration knows about objects. Create the function vmstate_device_is_migratable() in savem.c that really do the bit that is related with migration. Signed-off-by: Juan Quintela <quintela@redhat.com> Reviewed-by: Peter Xu <peterx@redhat.com>
Diffstat (limited to 'migration')
-rw-r--r--migration/migration.c15
-rw-r--r--migration/savevm.c10
2 files changed, 10 insertions, 15 deletions
diff --git a/migration/migration.c b/migration/migration.c
index ed11c1fb53..0304c013f3 100644
--- a/migration/migration.c
+++ b/migration/migration.c
@@ -1143,21 +1143,6 @@ void migrate_del_blocker(Error *reason)
migration_blockers = g_slist_remove(migration_blockers, reason);
}
-int check_migratable(Object *obj, Error **err)
-{
- DeviceClass *dc = DEVICE_GET_CLASS(obj);
- if (only_migratable && dc->vmsd) {
- if (dc->vmsd->unmigratable) {
- error_setg(err, "Device %s is not migratable, but "
- "--only-migratable was specified",
- object_get_typename(obj));
- return -1;
- }
- }
-
- return 0;
-}
-
void qmp_migrate_incoming(const char *uri, Error **errp)
{
Error *local_err = NULL;
diff --git a/migration/savevm.c b/migration/savevm.c
index b4f736f5f7..f5e81948e6 100644
--- a/migration/savevm.c
+++ b/migration/savevm.c
@@ -2317,3 +2317,13 @@ void vmstate_register_ram_global(MemoryRegion *mr)
{
vmstate_register_ram(mr, NULL);
}
+
+bool vmstate_check_only_migratable(const VMStateDescription *vmsd)
+{
+ /* check needed if --only-migratable is specified */
+ if (!only_migratable) {
+ return true;
+ }
+
+ return !(vmsd && vmsd->unmigratable);
+}