On 02/23/2015 01:57 PM, Max Reitz wrote: > On 2015-02-11 at 22:07, Wen Congyang wrote: >> Signed-off-by: Wen Congyang >> Signed-off-by: zhanghailiang >> Signed-off-by: Gonglei >> --- >> block.c | 36 ++++++++++++++++++++++++++++++++++++ >> include/block/block.h | 10 ++++++++++ >> include/block/block_int.h | 12 ++++++++++++ >> 3 files changed, 58 insertions(+) >> >> +++ b/include/block/block.h >> @@ -557,4 +557,14 @@ void bdrv_flush_io_queue(BlockDriverState *bs); >> BlockAcctStats *bdrv_get_stats(BlockDriverState *bs); >> +/* Checkpoint control, called in migration/checkpoint thread */ >> +enum { >> + COLO_UNPROTECTED_MODE = 0, >> + COLO_PRIMARY_MODE, >> + COLO_SECONDARY_MODE, >> +}; > > I have a feeling that you may want to define these values through QAPI... especially if you intend for a QMP command to output which mode a colo disk is in. >> +++ b/include/block/block_int.h >> @@ -273,6 +273,18 @@ struct BlockDriver { >> void (*bdrv_io_unplug)(BlockDriverState *bs); >> void (*bdrv_flush_io_queue)(BlockDriverState *bs); >> + >> + /* Checkpoint control, called in migration/checkpoint thread */ >> + int (*bdrv_start_replication)(BlockDriverState *bs, int mode); >> + /* >> + * Drop Disk buffer when doing checkpoint. >> + */ >> + int (*bdrv_do_checkpoint)(BlockDriverState *bs); Inconsistent comment style between one-line and multi-line. -- Eric Blake eblake redhat com +1-919-301-3266 Libvirt virtualization library http://libvirt.org