These are proposed changes, to add live block commit functionality. I originally had intended for this RFC series to include the more complicated case of a live commit of the active layer, but removed it for this commit in the hopes of making it into the soft feature freeze for 1.2, so this series is the simpler case.
This series adds the basic case, of a live commit between two images below the active layer, e.g.: [base] <--- [snp-1] <--- [snp-2] <--- [snp-3] <--- [active] can be collapsed down via commit, into: [base] <--- [active] or, [base] <--- [snp-1] <--- [active], [base] <--- [snp-3] <--- [active], etc.. qemu-io tests for the block commit will be adding onto the v1 patch set. These patches are on top of Supriya's reopen() series, and Paolo's block mirror series (the RFC series). I have not rebased yet to the newer patches put out by Supriya and Paolo - this was tested w/o the reopen, by manually making sure the images stayed in a r/w state. Jeff Cody (4): block: add support functions for live commit, to find and delete images. block: add live block commit functionality qerror: new errors for live block commit, QERR_TOP_NOT_FOUND QAPI: add command for live block commit, 'block-commit' block.c | 136 ++++++++++++++++++++++++++++++++++- block.h | 4 ++ block/Makefile.objs | 2 +- block/commit.c | 200 +++++++++++++++++++++++++++++++++++++++++++++++++++ block_int.h | 19 +++++ blockdev.c | 78 ++++++++++++++++++++ qapi-schema.json | 33 +++++++++ qerror.c | 4 ++ qerror.h | 3 + qmp-commands.hx | 6 ++ trace-events | 2 + 11 files changed, 485 insertions(+), 2 deletions(-) create mode 100644 block/commit.c -- 1.7.10.4