]> Git Repo - qemu.git/commit
block/io: Check for replay-enabled in bdrv_drain_all_begin()
authorPeter Maydell <[email protected]>
Tue, 20 Dec 2022 17:46:38 +0000 (17:46 +0000)
committerPeter Maydell <[email protected]>
Wed, 21 Dec 2022 12:38:17 +0000 (12:38 +0000)
commit6394578984da00564d6a3515940732ff9b83cd10
treed4ede5a1499afadff5be1547328cb7c785251e7d
parent67de3d090d0b62d779fa497e708859b5ec1b791d
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: da0bd744344adb1f285 ("block: Factor out bdrv_drain_all_begin_nopoll()")
Signed-off-by: Peter Maydell <[email protected]>
Tested-by: Fabiano Rosas <[email protected]>
Message-id: 20221220174638.2156308[email protected]
block/io.c
This page took 0.020573 seconds and 4 git commands to generate.