After a lot has been restructed in the block layer in the past, we can now reap at least one of the fruits: Make bdrv_open() return a BDS!
This series depends on the following series/patches: - Revert "block: Forbid I/O throttling on nodes with multiple parents for 2.6" This is something I suppose Kevin will send when the 2.7 development window opens. - "block: Move I/O throttling to BlockBackend" by Kevin - "block: Remove BlockDriverState.blk" by Kevin v2: - Patch 1: bdrv_open_backing_file() has been changed already, so that part can be dropped from the patch - Patch 2: - bdrv_append_temp_snapshot() now takes an additional argument (snapshot_options) - Drop a superfluous assignment to ret [Berto] - The function is now also static already, so we don't need to do that - Patch 3: Added because this test has been added in the meantime - Patch 4: Rebase conflicts - Patch 6: - Rebase conflicts - A whole lot of places we no longer need to touch because they use blk_new_open() instead of bdrv_open() - Patch 8: Added because patch 7 makes this possible. git-backport-diff against v1: Key: [----] : patches are identical [####] : number of functional differences between upstream/downstream patch [down] : patch is downstream-only The flags [FC] indicate (F)unctional and (C)ontextual differences, respectively 001/8:[down] 'block: Drop useless bdrv_new() call' ^^^^ Actually [0006] [FC] with a changed commit title 002/8:[0015] [FC] 'block: Let bdrv_open_inherit() return the snapshot' 003/8:[down] 'tests: Drop BDS from test-throttle.c' 004/8:[0019] [FC] 'block: Drop blk_new_with_bs()' 005/8:[----] [-C] 'block: Drop bdrv_new_root()' 006/8:[0135] [FC] 'block: Make bdrv_open() return a BDS' 007/8:[----] [-C] 'block: Assert !bs->refcnt in bdrv_close()' 008/8:[down] 'block: Drop bdrv_parent_cb_...() from bdrv_close()' Max Reitz (8): block: Drop useless bdrv_new() call block: Let bdrv_open_inherit() return the snapshot tests: Drop BDS from test-throttle.c block: Drop blk_new_with_bs() block: Drop bdrv_new_root() block: Make bdrv_open() return a BDS block: Assert !bs->refcnt in bdrv_close() block: Drop bdrv_parent_cb_...() from bdrv_close() block.c | 139 ++++++++++++++++++++------------------------------ block/block-backend.c | 30 +++-------- block/vvfat.c | 8 +-- blockdev.c | 38 +++++--------- include/block/block.h | 5 +- tests/test-throttle.c | 6 +-- 6 files changed, 83 insertions(+), 143 deletions(-) -- 2.8.0