[PATCH v7 0/7] blockdev-replace

Vladimir Sementsov-Ogievskiy posted 7 patches 1 year ago
Patches applied successfully (tree, apply log)
git fetch https://github.com/patchew-project/qemu tags/patchew/20230421114102.884457-1-vsementsov@yandex-team.ru
Maintainers: Kevin Wolf <kwolf@redhat.com>, Hanna Reitz <hreitz@redhat.com>, Eric Blake <eblake@redhat.com>, Markus Armbruster <armbru@redhat.com>, Paolo Bonzini <pbonzini@redhat.com>
There is a newer version of this series
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
[PATCH v7 0/7] blockdev-replace
Posted by Vladimir Sementsov-Ogievskiy 1 year ago
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