vl: Fix to create migration object before block backends again

Recent commit cda4aa9a5a 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: cda4aa9a5a
Reported-by: Kevin Wolf <kwolf@redhat.com>
Signed-off-by: Markus Armbruster <armbru@redhat.com>
Signed-off-by: Kevin Wolf <kwolf@redhat.com>
This commit is contained in:
Markus Armbruster 2019-03-13 09:43:30 +01:00 committed by Kevin Wolf
parent 9cd97956cf
commit e60483f2f8

15
vl.c
View File

@ -4276,10 +4276,17 @@ int main(int argc, char **argv, char **envp)
exit(0); 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 * Note: we need to create block backends before
* machine_set_property(), so machine properties can refer to * 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); 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); 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) { if (qtest_chrdev) {
qtest_init(qtest_chrdev, qtest_log, &error_fatal); qtest_init(qtest_chrdev, qtest_log, &error_fatal);
} }