mirror of
https://github.com/mii443/qemu.git
synced 2025-08-22 15:15:46 +00:00
vhost-user-blk-server: notify client about disk resize
Currently block_resize qmp command is simply ignored by vhost-user-blk export. So, the block-node is successfully resized, but virtio config is unchanged and guest doesn't see that disk is resized. Let's handle the resize by modifying the config and notifying the guest appropriately. After this comment, lsblk in linux guest with attached vhost-user-blk-pci device shows new size immediately after block_resize QMP command on vhost-user exported block node. Signed-off-by: Vladimir Sementsov-Ogievskiy <vsementsov@yandex-team.ru> Message-Id: <20230321201323.3695923-1-vsementsov@yandex-team.ru> Reviewed-by: Michael S. Tsirkin <mst@redhat.com> Signed-off-by: Michael S. Tsirkin <mst@redhat.com>
This commit is contained in:
committed by
Michael S. Tsirkin
parent
b93fe7f2ca
commit
ca858a5fe9
@ -2455,6 +2455,16 @@ void vu_queue_notify_sync(VuDev *dev, VuVirtq *vq)
|
||||
_vu_queue_notify(dev, vq, true);
|
||||
}
|
||||
|
||||
void vu_config_change_msg(VuDev *dev)
|
||||
{
|
||||
VhostUserMsg vmsg = {
|
||||
.request = VHOST_USER_BACKEND_CONFIG_CHANGE_MSG,
|
||||
.flags = VHOST_USER_VERSION,
|
||||
};
|
||||
|
||||
vu_message_write(dev, dev->slave_fd, &vmsg);
|
||||
}
|
||||
|
||||
static inline void
|
||||
vring_used_flags_set_bit(VuVirtq *vq, int mask)
|
||||
{
|
||||
|
@ -585,6 +585,8 @@ bool vu_queue_empty(VuDev *dev, VuVirtq *vq);
|
||||
*/
|
||||
void vu_queue_notify(VuDev *dev, VuVirtq *vq);
|
||||
|
||||
void vu_config_change_msg(VuDev *dev);
|
||||
|
||||
/**
|
||||
* vu_queue_notify_sync:
|
||||
* @dev: a VuDev context
|
||||
|
Reference in New Issue
Block a user