qemu-e2k/block
Peter Maydell 6394578984 block/io: Check for replay-enabled in bdrv_drain_all_begin()
In commit da0bd74434 we refactored bdrv_drain_all_begin() to pull out
the non-polling part into bdrv_drain_all_begin_nopoll().  This change
broke record-and-replay, because the "return early if replay enabled"
check is now in the sub-function bdrv_drain_all_begin_nopoll(), and
so it only causes us to return from that function, and not from the
calling bdrv_drain_all_begin().

Fix the regression by checking whether replay is enabled in both
functions.

The breakage and fix can be tested via 'make check-avocado': the
tests/avocado/reverse_debugging.py:ReverseDebugging_X86_64.test_x86_64_pc
tests/avocado/reverse_debugging.py:ReverseDebugging_AArch64.test_aarch64_virt
tests were both broken by this.

Fixes: da0bd74434 ("block: Factor out bdrv_drain_all_begin_nopoll()")
Signed-off-by: Peter Maydell <peter.maydell@linaro.org>
Tested-by: Fabiano Rosas <farosas@suse.de>
Message-id: 20221220174638.2156308-1-peter.maydell@linaro.org
2022-12-21 12:38:17 +00:00
..
export
monitor
accounting.c
aio_task.c
amend.c
backup.c
blkdebug.c
blkio.c
blklogwrites.c
blkreplay.c
blkverify.c
block-backend.c block-backend: replace bdrv_*_above with blk_*_above 2022-12-15 16:07:43 +01:00
block-copy.c block-copy: add coroutine_fn annotations 2022-12-15 16:07:43 +01:00
block-gen.h block-coroutine-wrapper.py: support also basic return types 2022-12-15 16:07:43 +01:00
block-ram-registrar.c
bochs.c
cloop.c
commit.c block-backend: replace bdrv_*_above with blk_*_above 2022-12-15 16:07:43 +01:00
copy-before-write.c Miscellaneous patches for 2022-12-14 2022-12-15 10:13:46 +00:00
copy-before-write.h
copy-on-read.c
copy-on-read.h
coroutines.h block: GRAPH_RDLOCK for functions only called by co_wrappers 2022-12-15 16:08:23 +01:00
create.c
crypto.c block: bdrv_create_file is a coroutine_fn 2022-12-15 16:07:43 +01:00
crypto.h
curl.c
dirty-bitmap.c block/dirty-bitmap: convert coroutine-only functions to co_wrapper 2022-12-15 16:07:43 +01:00
dmg-bz2.c
dmg-lzfse.c
dmg.c
dmg.h
file-posix.c
file-win32.c
filter-compress.c
gluster.c
graph-lock.c graph-lock: TSA annotations for lock/unlock functions 2022-12-15 16:08:23 +01:00
io_uring.c
io.c block/io: Check for replay-enabled in bdrv_drain_all_begin() 2022-12-21 12:38:17 +00:00
iscsi-opts.c
iscsi.c
linux-aio.c
meson.build graph-lock: Introduce a lock to protect block graph operations 2022-12-15 16:07:43 +01:00
mirror.c
nbd.c
nfs.c
null.c
nvme.c
parallels-ext.c
parallels.c block: bdrv_create_file is a coroutine_fn 2022-12-15 16:07:43 +01:00
parallels.h
preallocate.c
progress_meter.c
qapi-sysemu.c
qapi.c
qcow2-bitmap.c
qcow2-cache.c
qcow2-cluster.c
qcow2-refcount.c
qcow2-snapshot.c
qcow2-threads.c
qcow2.c block: bdrv_create_file is a coroutine_fn 2022-12-15 16:07:43 +01:00
qcow2.h
qcow.c block: bdrv_create_file is a coroutine_fn 2022-12-15 16:07:43 +01:00
qed-check.c
qed-cluster.c
qed-l2-cache.c
qed-table.c
qed.c block: bdrv_create_file is a coroutine_fn 2022-12-15 16:07:43 +01:00
qed.h
quorum.c
raw-format.c block: bdrv_create_file is a coroutine_fn 2022-12-15 16:07:43 +01:00
rbd.c
replication.c block: Drain individual nodes during reopen 2022-12-15 16:07:42 +01:00
reqlist.c
snapshot-access.c
snapshot.c
ssh.c
stream.c stream: Replace subtree drain with a single node drain 2022-12-15 16:07:42 +01:00
throttle-groups.c
throttle.c block: Revert .bdrv_drained_begin/end to non-coroutine_fn 2022-12-15 16:07:42 +01:00
trace-events
trace.h
vdi.c block: bdrv_create_file is a coroutine_fn 2022-12-15 16:07:43 +01:00
vhdx-endian.c
vhdx-log.c
vhdx.c block: bdrv_create_file is a coroutine_fn 2022-12-15 16:07:43 +01:00
vhdx.h
vmdk.c block: bdrv_create_file is a coroutine_fn 2022-12-15 16:07:43 +01:00
vpc.c block: bdrv_create_file is a coroutine_fn 2022-12-15 16:07:43 +01:00
vvfat.c
win32-aio.c
write-threshold.c