On 08/30/2012 02:47 PM, Jeff Cody wrote: > Live block commit. > > 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.. > > TODO: * qemu-io tests (in progress) > * 'stage-2' of live commit functionality, to be able to push down the > active layer. This structured something like mirroring, to allow for > convergence. > > Changes from the RFC v1 series: > > * This patch series is not on top of Paolo's blk mirror series yet, to make it > easier to apply independently if desired. This means some of what was in > the > previous RFC series is not in this one (BlockdevOnError, for instance), but > that can be easily added in once Paolo's series are in. > > * This patches series is dependent on the reopen() series with transactional > reopen. > > * The target release for this series is 1.3 > > * Found some mistakes in the reopen calls > > * Dropped the BlockdevOnError argument (for now), will add in if rebasing on > top of Paolo's series. > > * Used the new qerror system > >
I meant to add this to my cover letter, but forgot; if anyone wants to play around with this, you can find it on github: git://github.com/codyprime/qemu-kvm-jtc.git (branch jtc-live-commit-1.3) > Jeff Cody (6): > 1/6 block: add support functions for live commit, to find and delete > images. > 2/6 block: add live block commit functionality > 3/6 blockdev: rename block_stream_cb to a generic block_job_cb > 4/6 qerror: new error for live block commit, QERR_TOP_NOT_FOUND > 5/6 block: helper function, to find the base image of a chain > 6/6 QAPI: add command for live block commit, 'block-commit' > > block.c | 158 ++++++++++++++++++++++++++++++++++++++++ > block.h | 6 +- > block/Makefile.objs | 1 + > block/commit.c | 202 > ++++++++++++++++++++++++++++++++++++++++++++++++++++ > block_int.h | 19 +++++ > blockdev.c | 91 ++++++++++++++++++++++- > qapi-schema.json | 30 ++++++++ > qerror.h | 3 + > qmp-commands.hx | 6 ++ > trace-events | 4 +- > 10 files changed, 515 insertions(+), 5 deletions(-) > create mode 100644 block/commit.c >