This is a small collection of patches to reduce our use of the bs->job pointer where possible. There are still more usages in the code, but this cuts down on a few.
The goal is to eventually eliminate all of them and allow multiple block jobs to run concurrently, but design on what that will look like is on-going. In the meantime, eliminate a few obviously needless references to bs->job by allowing more systems to carry pointers to jobs directly instead of trying to fish the pointer out of the BDS all the time. ________________________________________________________________________________ For convenience, this branch is available at: https://github.com/jnsnow/qemu.git branch block-multijob2 https://github.com/jnsnow/qemu/tree/block-multijob2 This version is tagged block-multijob2-v1: https://github.com/jnsnow/qemu/releases/tag/block-multijob2-v1 John Snow (5): block: Allow mirror_start to return job references block: Allow stream_start to return job references block: allow backup_start to return job references block/backup: Add subclassed notifier blockjob: add Job parameter to BlockCompletionFunc block/backup.c | 68 +++++++++------ block/commit.c | 2 +- block/mirror.c | 74 ++++++++-------- block/stream.c | 10 ++- blockdev.c | 210 +++++++++++++++++++++++++--------------------- blockjob.c | 13 ++- include/block/block.h | 2 + include/block/block_int.h | 27 +++--- include/block/blockjob.h | 6 +- qemu-img.c | 16 ++-- tests/test-blockjob-txn.c | 4 +- 11 files changed, 250 insertions(+), 182 deletions(-) -- 2.4.3