These are a bunch of cleanups and patches extracted from the AioContext lock removal series. They are independent and can be applied/reviewed separately. The flip side is that several of the changes seem to be a bit gratuitous without the big change from AioContext lock to a specific block job mutex for all block job data structures.
While the patch set seems very large, a lot of it just moving the code around to avoid forward references; this is so that close functions will have similar locking rules. Paolo Paolo Bonzini (10): blockjob: remove unnecessary check blockjob: remove iostatus_reset callback blockjob: introduce block_job_fail blockjob: introduce block_job_pause/resume_all blockjob: separate monitor and blockjob APIs blockjob: move iostatus reset inside block_job_user_resume blockjob: strengthen a bit test-blockjob-txn blockjob: introduce block_job_cancel_async blockjob: reorganize block_job_completed_txn_abort blockjob: use deferred_to_main_loop to indicate the coroutine has ended block/backup.c | 2 +- block/commit.c | 2 +- block/io.c | 18 +- block/mirror.c | 2 +- blockdev.c | 1 - blockjob.c | 559 ++++++++++++++++++++++++------------------- include/block/blockjob.h | 14 +- include/block/blockjob_int.h | 21 +- tests/test-blockjob-txn.c | 7 +- tests/test-blockjob.c | 10 +- 10 files changed, 334 insertions(+), 302 deletions(-) -- 2.9.3