qemu/hw/block
Dima Stepanov 4bcad76f4c vhost-user-blk: delay vhost_user_blk_disconnect
A socket write during vhost-user communication may trigger a disconnect
event, calling vhost_user_blk_disconnect() and clearing all the
vhost_dev structures holding data that vhost-user functions expect to
remain valid to roll back initialization correctly. Delay the cleanup to
keep vhost_dev structure valid.
There are two possible states to handle:
1. RUN_STATE_PRELAUNCH: skip bh oneshot call and perform disconnect in
the caller routine.
2. RUN_STATE_RUNNING: delay by using bh

BH changes are based on the similar changes for the vhost-user-net
device:
  commit e7c83a885f
  "vhost-user: delay vhost_user_stop"

Signed-off-by: Dima Stepanov <dimastep@yandex-team.ru>
Message-Id: <69b73b94dcd066065595266c852810e0863a0895.1590396396.git.dimastep@yandex-team.ru>
Reviewed-by: Michael S. Tsirkin <mst@redhat.com>
Signed-off-by: Michael S. Tsirkin <mst@redhat.com>
Signed-off-by: Li Feng <fengli@smartx.com>
Reviewed-by: Raphael Norwitz <raphael.norwitz@nutanix.com>
2020-06-09 14:18:04 -04:00
..
dataplane xen-block: Fix double qlist remove and request leak 2020-04-07 13:51:09 +02:00
block.c pflash: Require backend size to match device, improve errors 2019-03-26 08:16:24 +01:00
cdrom.c Include qemu-common.h exactly where needed 2019-06-12 13:20:20 +02:00
ecc.c Include hw/hw.h exactly where needed 2019-08-16 13:31:52 +02:00
fdc.c Drop more @errp parameters after previous commit 2020-05-15 07:08:14 +02:00
hd-geometry.c block: Remove blk_pread_unthrottled() 2019-08-16 10:25:16 +02:00
Kconfig hw/m68k: add a dummy SWIM floppy controller 2019-10-28 19:06:51 +01:00
m25p80.c m25p80: Improve command handling for unsupported commands 2020-03-17 11:36:42 +00:00
Makefile.objs hw/block: Let the NVMe emulated device be target-agnostic 2020-06-05 09:54:48 +01:00
nand.c qdev: set properties with device_class_set_props() 2020-01-24 20:59:15 +01:00
nvme.c hw/block: Let the NVMe emulated device be target-agnostic 2020-06-05 09:54:48 +01:00
nvme.h nvme: introduce PMR support from NVMe 1.4 spec 2020-04-30 17:51:07 +02:00
onenand.c qdev: set properties with device_class_set_props() 2020-01-24 20:59:15 +01:00
pflash_cfi01.c hw/block/pflash: Check return value of blk_pwrite() 2020-05-22 19:38:14 +02:00
pflash_cfi02.c hw/block/pflash: Check return value of blk_pwrite() 2020-05-22 19:38:14 +02:00
swim.c qdev: set properties with device_class_set_props() 2020-01-24 20:59:15 +01:00
tc58128.c Include hw/hw.h exactly where needed 2019-08-16 13:31:52 +02:00
trace-events nvme: introduce PMR support from NVMe 1.4 spec 2020-04-30 17:51:07 +02:00
vhost-user-blk.c vhost-user-blk: delay vhost_user_blk_disconnect 2020-06-09 14:18:04 -04:00
virtio-blk.c qdev: Unrealize must not fail 2020-05-15 07:08:14 +02:00
xen_blkif.h xen: Import other xen/io/*.h 2019-06-24 10:42:30 +01:00
xen-block.c qdev: Unrealize must not fail 2020-05-15 07:08:14 +02:00