[PATCH v5 4/6] vhost-user-blk: make inflight-migration prop mutable
Alexandr Moshkov <[email protected]> Tue, 28 Jul 2026 15:08:39 +0500
| Newsgroups | dev.linux.lists.virtio-fs,org.nongnu.qemu-devel |
|---|---|
| Message-ID | <[email protected]> |
When migrating from a QEMU version that supports inflight-migration to an older one that does not, there is no way to disable the feature at runtime — the VM must be stopped and reconfigured. This is impractical in production environments. Make the inflight-migration property mutable after device realization so it can be toggled via qom-set without restarting the VM. Acked-by: Raphael Norwitz <[email protected]> Signed-off-by: Alexandr Moshkov <[email protected]> --- hw/block/vhost-user-blk.c | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/hw/block/vhost-user-blk.c b/hw/block/vhost-user-blk.c index e3b873af7c..650c004bde 100644 --- a/hw/block/vhost-user-blk.c +++ b/hw/block/vhost-user-blk.c @@ -619,6 +619,8 @@ static const VMStateDescription vmstate_vhost_user_blk = { } }; +static PropertyInfo vhost_user_blk_inflight_migration_prop; + static const Property vhost_user_blk_properties[] = { DEFINE_PROP_CHR("chardev", VHostUserBlk, chardev), DEFINE_PROP_UINT16("num-queues", VHostUserBlk, num_queues, @@ -632,8 +634,9 @@ static const Property vhost_user_blk_properties[] = { VIRTIO_BLK_F_WRITE_ZEROES, true), DEFINE_PROP_BOOL("skip-get-vring-base-on-force-shutdown", VHostUserBlk, skip_get_vring_base_on_force_shutdown, false), - DEFINE_PROP_BOOL("inflight-migration", VHostUserBlk, - inflight_migration, false), + DEFINE_PROP("inflight-migration", VHostUserBlk, inflight_migration, + vhost_user_blk_inflight_migration_prop, bool, + .set_default = true, .defval.u = false), }; static void vhost_user_blk_class_init(ObjectClass *klass, const void *data) @@ -665,6 +668,9 @@ static const TypeInfo vhost_user_blk_info = { static void virtio_register_types(void) { + vhost_user_blk_inflight_migration_prop = qdev_prop_bool; + vhost_user_blk_inflight_migration_prop.realized_set_allowed = true; + type_register_static(&vhost_user_blk_info); } -- 2.34.1