qapi/virtio.json | 29 ++ docs/devel/multiple-iothreads.txt | 47 +-- hw/block/dataplane/virtio-blk.h | 3 + include/block/aio-wait.h | 16 +- include/block/aio.h | 17 - include/block/block-common.h | 3 - include/block/block-global-state.h | 23 +- include/block/block-io.h | 12 +- include/block/block_int-common.h | 2 - include/block/graph-lock.h | 21 +- include/block/snapshot.h | 2 - include/hw/qdev-properties-system.h | 5 + include/hw/qdev-properties.h | 4 +- include/hw/scsi/scsi.h | 7 +- include/hw/virtio/virtio-blk.h | 5 +- include/hw/virtio/virtio-scsi.h | 17 +- include/qapi/string-output-visitor.h | 6 +- include/qemu/job.h | 20 -- block.c | 363 +++------------------ block/backup.c | 4 +- block/blklogwrites.c | 8 +- block/blkverify.c | 4 +- block/block-backend.c | 33 +- block/commit.c | 16 +- block/copy-before-write.c | 22 +- block/export/export.c | 22 +- block/export/vhost-user-blk-server.c | 4 - block/file-posix.c | 103 +++--- block/graph-lock.c | 44 +-- block/io.c | 45 +-- block/mirror.c | 41 +-- block/monitor/bitmap-qmp-cmds.c | 20 +- block/monitor/block-hmp-cmds.c | 29 -- block/qapi-sysemu.c | 27 +- block/qapi.c | 18 +- block/qcow2.c | 4 +- block/quorum.c | 8 +- block/raw-format.c | 5 - block/replication.c | 72 +--- block/snapshot.c | 30 +- block/stream.c | 12 +- block/vmdk.c | 20 +- block/write-threshold.c | 6 - blockdev.c | 320 ++++-------------- blockjob.c | 30 +- hw/block/dataplane/virtio-blk.c | 165 +++++++--- hw/block/dataplane/xen-block.c | 17 +- hw/block/virtio-blk.c | 209 +++++++----- hw/core/qdev-properties-system.c | 55 +++- hw/core/qdev-properties.c | 18 +- hw/scsi/scsi-bus.c | 183 +++++++---- hw/scsi/scsi-disk.c | 67 +--- hw/scsi/scsi-generic.c | 20 +- hw/scsi/virtio-scsi-dataplane.c | 8 +- hw/scsi/virtio-scsi.c | 80 ++--- job.c | 16 - migration/block.c | 34 +- migration/migration-hmp-cmds.c | 3 - migration/savevm.c | 22 -- nbd/server.c | 208 +++++++++--- net/colo-compare.c | 2 - qapi/string-output-visitor.c | 16 + qemu-img.c | 4 - qemu-io.c | 10 +- qemu-nbd.c | 2 - replay/replay-debugging.c | 4 - system/dma-helpers.c | 10 +- system/vl.c | 4 + tests/unit/test-aio.c | 67 +--- tests/unit/test-bdrv-drain.c | 91 ++---- tests/unit/test-bdrv-graph-mod.c | 26 +- tests/unit/test-block-iothread.c | 31 -- tests/unit/test-blockjob.c | 137 -------- tests/unit/test-replication.c | 11 - util/async.c | 14 - util/vhost-user-server.c | 3 - scripts/block-coroutine-wrapper.py | 13 +- tests/qemu-iotests/202 | 2 +- tests/qemu-iotests/203 | 3 +- tests/qemu-iotests/tests/qcow2-internal-snapshots | 170 ++++++++++ .../tests/qcow2-internal-snapshots.out | 107 ++++++ tests/tsan/suppressions.tsan | 1 - 82 files changed, 1341 insertions(+), 2041 deletions(-) create mode 100755 tests/qemu-iotests/tests/qcow2-internal-snapshots create mode 100644 tests/qemu-iotests/tests/qcow2-internal-snapshots.out