This is based on Fam's "Drop in_use with op_blocker" series. This is v2 of "block: Modify block-commit to use node-names", but with additional changes. Changes include new functionality (helper functions, block-stream changes, new QAPI command), as well as review comments from Benoit, and Eric.
Using node-names instead of filenames for block job operations over QMP is a superior method of identifying the block driver images to operate on, as it removes all pathname ambiguity. This series modifies block-commit and block-stream to use node-names, and creates a new QAPI command to allow stand-alone backing file changes on an image file. So that node-names can be used as desired for all block job operations, this series also auto-generates node-names for every BDS. User-specified node-names will override any autogenerated node-names. Jeff Cody (11): block: Auto-generate node_names for each BDS entry block: add helper function to determine if a BDS is in a chain block: Add overlay BDS pointer into the BlockDriverState struct block: add helper function to find the active layer of any BDS block: simplify bdrv_find_base() block: make 'top' argument to block-commit optional block: Accept node-name arguments for block-commit block: extend block-commit to accept a string for the backing file block: add ability for block-stream to use node-name block: add backing-file option to block-stream block: add QAPI command to allow live backing file change block.c | 62 ++++++++-- block/commit.c | 9 +- block/stream.c | 13 ++- blockdev.c | 286 ++++++++++++++++++++++++++++++++++++++++++---- hmp-commands.hx | 18 ++- hmp.c | 30 ++++- hmp.h | 1 + include/block/block.h | 5 +- include/block/block_int.h | 6 +- qapi-schema.json | 142 +++++++++++++++++++++-- qmp-commands.hx | 121 ++++++++++++++++++-- tests/qemu-iotests/040 | 28 +++-- 12 files changed, 638 insertions(+), 83 deletions(-) -- 1.8.3.1