These patches fix the existing problems with synchronous job cancellation without adding a bdrv_drain_all in the asynchronous block_job_cancel.
Paolo Bonzini (2): block: add block_job_sleep_ns block: wait for job callback in block_job_cancel_sync block.c | 47 +++++++++++++++++++++++++++++++++++++++++++++-- block/stream.c | 29 +++++++++++------------------ block_int.h | 33 +++++++++++++++++++++++++-------- 3 files changed, 81 insertions(+), 28 deletions(-) -- 1.7.9.3