The first patches clean up usage of BlockBackend and changing of its (root's) aio contexts; the last patch is an update of Stefan's previous version rebasing on top of current master. The biggest change from the RFC is that blk_insert_bs callers are responsible to put the BB and BDS on the same context before calling it.
This fixes the crash triggered by "change" a scsi-cd on a virtio-scsi dataplane device. The new assertions in block-backend.c ensures we won't have a conflict pair of BlockBackend users from different contextes. Fam Zheng (4): blockdev-mirror: Sanity check before moving target_bs AioContext blockdev: Move BDS AioContext before inserting to BB block: Introduce and make use of blk_new_with_root migration: Set correct AioContext to BlockBackend Stefan Hajnoczi (1): block: keep AioContext pointer in BlockBackend block/backup.c | 3 +-- block/block-backend.c | 48 +++++++++++++++++++++++++++++----------- block/commit.c | 12 ++++------ block/mirror.c | 3 +-- blockdev.c | 42 ++++++++++++++++++++++++++--------- blockjob.c | 3 +-- hmp.c | 3 +-- hw/core/qdev-properties-system.c | 3 +-- include/sysemu/block-backend.h | 1 + migration/block.c | 1 + nbd/server.c | 3 +-- tests/test-blockjob.c | 3 +-- 12 files changed, 79 insertions(+), 46 deletions(-) -- 2.7.4