@@ -4276,10 +4276,17 @@ int main(int argc, char **argv, char **envp)
exit(0);
}
+ /*
+ * Migration object can only be created after global properties
+ * are applied correctly.
+ */
+ migration_object_init();
+
/*
* Note: we need to create block backends before
* machine_set_property(), so machine properties can refer to
- * them.
+ * them, and after migration_object_init(), so we can create
+ * migration blockers.
*/
configure_blockdev(&bdo_queue, machine_class, snapshot);
@@ -4297,12 +4304,6 @@ int main(int argc, char **argv, char **envp)
machine_class->name, machine_class->deprecation_reason);
}
- /*
- * Migration object can only be created after global properties
- * are applied correctly.
- */
- migration_object_init();
-
if (qtest_chrdev) {
qtest_init(qtest_chrdev, qtest_log, &error_fatal);
}
Recent commit cda4aa9a5a0 moved block backend creation before machine property evaluation. This broke qemu-iotests 055. Turns out we need to create the migration object before block backends, so block backends can add migration blockers. Fix by calling migration_object_init() earlier, right before configure_blockdev(). Fixes: cda4aa9a5a08777cf13e164c0543bd4888b8adce Reported-by: Kevin Wolf <kwolf@redhat.com> Signed-off-by: Markus Armbruster <armbru@redhat.com> --- vl.c | 15 ++++++++------- 1 file changed, 8 insertions(+), 7 deletions(-)