Here, patches 1-6 make the remaining part of the block layer thread safe. Patches 7-11 start removing aio_context_acquire/release, so the line count goes down instead of up.
This is the penultimate series. The remaining part makes virtio-blk, virtio-scsi and block jobs thread safe, so that the AioContext lock can go away altogether. Paolo Paolo Bonzini (11): block: prepare write threshold code for thread safety block: make write-threshold thread-safe util: use RCU accessors for notifiers block: make before-write notifiers thread-safe block-backup: add reqs_lock block: more notes on locking block: do not acquire AioContext in check_to_replace_node block: drain I/O around key management block/replication: do not acquire AioContext block: do not take AioContext around reopen block/snapshot: do not take AioContext lock qdev: do not take AioContext when releasing (and thus closing) backends block.c | 19 +++-------- block/backup.c | 37 +++++++++++++++------ block/block-backend.c | 5 --- block/commit.c | 2 +- block/io.c | 12 +++++++ block/mirror.c | 9 ------ block/replication.c | 56 ++++++++------------------------ block/snapshot.c | 28 +--------------- block/write-threshold.c | 39 +++++++++++----------- blockdev.c | 70 ++++++++++++---------------------------- hmp.c | 7 ---- include/block/block.h | 2 +- include/block/block_backup.h | 2 +- include/block/block_int.h | 31 ++++++++++++++++-- include/block/snapshot.h | 4 +-- migration/savevm.c | 22 ------------- monitor.c | 10 ++---- qemu-io-cmds.c | 2 +- util/notify.c | 13 ++++---- 19 files changed, 142 insertions(+), 228 deletions(-) -- 2.13.0