971bea8089
Test the following scenario: 1. Some block node (null-co) attached to a user (here: NBD server) that performs I/O and keeps the node in an I/O thread 2. Repeatedly run blockdev-add/blockdev-del to add/remove an overlay to/from that node Each blockdev-add triggers bdrv_refresh_limits(), and because blockdev-add runs in the main thread, it does not stop the I/O requests. I/O can thus happen while the limits are refreshed, and when such a request sees a temporarily invalid block limit (e.g. alignment is 0), this may easily crash qemu (or the storage daemon in this case). The block layer needs to ensure that I/O requests to a node are paused while that node's BlockLimits are refreshed. Signed-off-by: Hanna Reitz <hreitz@redhat.com> Reviewed-by: Eric Blake <eblake@redhat.com> Message-Id: <20220216105355.30729-4-hreitz@redhat.com> Reviewed-by: Stefan Hajnoczi <stefanha@redhat.com> Signed-off-by: Kevin Wolf <kwolf@redhat.com> |
||
---|---|---|
.. | ||
avocado | ||
bench | ||
data | ||
decode | ||
docker | ||
fp | ||
guest-debug | ||
image-fuzzer | ||
include | ||
keys | ||
lcitool | ||
migration | ||
multiboot | ||
perf/block/qcow2 | ||
plugin | ||
qapi-schema | ||
qemu-iotests | ||
qtest | ||
rocker | ||
tcg | ||
tsan | ||
uefi-test-tools | ||
unit | ||
vm | ||
vmstate-static-checker-data | ||
check-block.sh | ||
dbus-vmstate-daemon.sh | ||
Makefile.include | ||
meson.build | ||
requirements.txt | ||
test-qht-par.c | ||
vhost-user-bridge.c |