This reverts the recent fix for the case of qemu-iotests 200 (block job
completion races when using a separate I/O thread) that only fixed a
symptom and caused many regressions, and replaces it with a new
solution that hopefully attacks the right root cause.

The series also contains a bonus fix for a bug that was uncovered by the
different timing with the patches that are reverted here.

Kevin Wolf (4):
  Revert "coroutine: abort if we try to schedule or enter a pending
    coroutine"
  Revert "blockjob: do not allow coroutine double entry or
    entry-after-completion"
  coroutine: Cancel aio_co_schedule() on direct entry
  block: Expect graph changes in bdrv_parent_drained_begin/end

 include/block/blockjob_int.h |  3 +--
 include/qemu/coroutine_int.h | 14 ++++----------
 block/io.c                   |  8 ++++----
 blockjob.c                   |  7 ++-----
 util/async.c                 | 26 +++++++++++++-------------
 util/qemu-coroutine-sleep.c  | 12 ------------
 util/qemu-coroutine.c        | 31 +++++++++++++++++--------------
 7 files changed, 41 insertions(+), 60 deletions(-)

-- 
2.13.6


Reply via email to