Hi all! That's the first part of "[PATCH v5 00/45] Transactional block-graph modifying API", updated and almost reviewed.
On commit (15) is added to original scope of "block: cleanup backing and file handling", as it's related. 01: add Hanna's r-b 02: - mention snapshot-access in commit msg - return ret in compress_open instead of EINVAL - add Hanna's r-b 03: add Hanna's r-b 04: - add case in commit msg - fix comments 05: - fix type in commit msg - add Hanna's r-b 06: add Hanna's r-b 07: wording improvements 08: - fix wording - add Hanna's r-b 09: I add the description, whey we allow a degradation. Still, up to maintainers: it's OK to merge 09-13 into one bit commit 13: - fix s/|/||/ - improve comment - more readable logic when handle filters in bdrv_child_cb_attach() - don't keep **child indirection, move to just returning a child ptr (honestly, I didn't analyze all the callers do they need this int value. Do you think it's needed?) - handle snapshot-access.c 14: get rid of _ptr 15: update comment Vladimir Sementsov-Ogievskiy (15): block: BlockDriver: add .filtered_child_is_backing field block: introduce bdrv_open_file_child() helper block/blklogwrites: don't care to remove bs->file child on failure test-bdrv-graph-mod: update test_parallel_perm_update test case tests-bdrv-drain: bdrv_replace_test driver: declare supports_backing test-bdrv-graph-mod: fix filters to be filters block: document connection between child roles and bs->backing/bs->file block/snapshot: stress that we fallback to primary child Revert "block: Let replace_child_noperm free children" Revert "block: Let replace_child_tran keep indirect pointer" Revert "block: Restructure remove_file_or_backing_child()" Revert "block: Pass BdrvChild ** to replace_child_noperm" block: Manipulate bs->file / bs->backing pointers in .attach/.detach block/snapshot: drop indirection around bdrv_snapshot_fallback_ptr block: refactor bdrv_remove_file_or_backing_child to bdrv_remove_child block.c | 435 ++++++++++------------------- block/blkdebug.c | 9 +- block/blklogwrites.c | 11 +- block/blkreplay.c | 7 +- block/blkverify.c | 9 +- block/bochs.c | 7 +- block/cloop.c | 7 +- block/commit.c | 1 + block/copy-before-write.c | 9 +- block/copy-on-read.c | 9 +- block/crypto.c | 11 +- block/dmg.c | 7 +- block/filter-compress.c | 8 +- block/mirror.c | 1 + block/parallels.c | 7 +- block/preallocate.c | 9 +- block/qcow.c | 6 +- block/qcow2.c | 8 +- block/qed.c | 8 +- block/raw-format.c | 4 +- block/replication.c | 8 +- block/snapshot-access.c | 6 +- block/snapshot.c | 59 ++-- block/throttle.c | 8 +- block/vdi.c | 7 +- block/vhdx.c | 7 +- block/vmdk.c | 7 +- block/vpc.c | 7 +- include/block/block-common.h | 39 +++ include/block/block-global-state.h | 3 + include/block/block_int-common.h | 29 +- tests/unit/test-bdrv-drain.c | 11 +- tests/unit/test-bdrv-graph-mod.c | 104 ++++--- 33 files changed, 389 insertions(+), 479 deletions(-) -- 2.25.1