Hi all! v2: 1. Let's start with minimal functionality: replace only one specific child. 2. Explicit type of parent: qdev / export / driver Hmm, 'driver' is for BlockDriverState.. Any better idea? I don't want to call it "node" or even "block-node", as finally, devices and exports are kind of nodes too in the whole block graph.. 3. I think it's better to start with x- prefix Plans for v3: - add tests of filter insertion and removing - add qmp transaction support Vladimir Sementsov-Ogievskiy (4): 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 blockdev-replace command qapi/block.json | 61 ++++++++++++++++++++++++++++++++++ include/block/block_int.h | 1 + include/sysemu/block-backend.h | 3 +- block.c | 13 ++++++++ block/block-backend.c | 2 +- block/export/export.c | 18 ++++++++++ block/qapi-sysemu.c | 56 +++++++++++++++++++++++++++++++ blockdev.c | 14 -------- 8 files changed, 152 insertions(+), 16 deletions(-) -- 2.31.1