This series fixes the problem that devices like IDE, which submit requests as a direct result of I/O from the CPU thread, can continue to submit new requests even in a drained section.
v2: - Rebased on top of block-next - Replaced patch 2 with draining mirror_top_bs instead [Max] - Removed wait_while_drained parameter from patch 3 [Max] - Covered blk_co_flush() [Max] - Fixed some typos [Eric] Kevin Wolf (3): block: Remove blk_pread_unthrottled() mirror: Keep mirror_top_bs drained after dropping permissions block-backend: Queue requests while drained include/sysemu/block-backend.h | 3 +- block/backup.c | 1 + block/block-backend.c | 69 ++++++++++++++++++++++++---------- block/commit.c | 2 + block/mirror.c | 7 +++- blockjob.c | 3 ++ hw/block/hd-geometry.c | 7 +--- tests/test-bdrv-drain.c | 1 + 8 files changed, 65 insertions(+), 28 deletions(-) -- 2.20.1