Hi all!
That's a non-transactional part of
"[PATCH v5 00/45] Transactional block-graph modifying API".
The new command helps to insert filters everywhere you want:
- replace qdev block-node by qdev-id
- replace export block-node by export-id
- replace any child of parent block-node by node-name and child name
To simplify things, let's postpone transaction support and start from
blockdev-replace single command. That still allows to insert filters
here and there!)
v7: rebase and change QAPI versions to 8.1
Vladimir Sementsov-Ogievskiy (7):
block-backend: blk_root(): drop const specifier on return type
block/export: add blk_by_export_id()
block: make bdrv_find_child() function public
qapi: add x-blockdev-replace command
block: bdrv_get_xdbg_block_graph(): report export ids
iotests.py: introduce VM.assert_edges_list() method
iotests: add filter-insertion
block.c | 17 ++
block/block-backend.c | 2 +-
block/export/export.c | 31 +++
blockdev.c | 70 ++++-
include/block/block_int-io.h | 1 +
include/block/export.h | 1 +
include/sysemu/block-backend-global-state.h | 3 +-
qapi/block-core.json | 62 +++++
stubs/blk-by-qdev-id.c | 9 +
stubs/blk-exp-find-by-blk.c | 9 +
stubs/meson.build | 2 +
tests/qemu-iotests/iotests.py | 17 ++
tests/qemu-iotests/tests/filter-insertion | 257 ++++++++++++++++++
tests/qemu-iotests/tests/filter-insertion.out | 5 +
14 files changed, 470 insertions(+), 16 deletions(-)
create mode 100644 stubs/blk-by-qdev-id.c
create mode 100644 stubs/blk-exp-find-by-blk.c
create mode 100755 tests/qemu-iotests/tests/filter-insertion
create mode 100644 tests/qemu-iotests/tests/filter-insertion.out
--
2.34.1