From: mahaocong <mahaoc...@didichuxing.com> This patch adds possibility to start mirroring with user-created-bitmap. Compare with v1, this patch fix some shortcomings. 1.separate feature about copy dirty-bitmap to an individual patch. 2.remove checking for cancelled after mirror_dirty_init_incremental for bitmap copyimg don't have yield point. 3.adjuest input parameters on mirror_start_job and mirror_start, and so It is no need to find bitmap on mirror_dirty_init_incremental again. 4.assert the bitmap name is NULL on blockdev_mirror_common. 5.change the parameter's name in qmp command 'drive-mirror' from 'bitmap_name' to 'bitmap'.
As for the doubt about the new incremental mode, I think it is means that the initial bitmap is appointed by user, compare with the full mode and top mode. There is no different in other behaves, such as in iteration and complete action. mahaocong (1): drive-mirror: add incremental mode mirror: add incremental mode. we must add a user-named-bitmap first, then set this bitmap as the initial bitmap on incremental mode drive-mirror. in details, I first create unnamed-bitmap with the same granularity of user-bitmap. Next, copy It's hbitmap to unnamed-bitmap. Then, start mirror with this unname-bitmap. dirty-bitmap: add new API to copy dirty-bitmap. This feature is add in a separate patch called "add new function to copy dirty-bitmap" block/mirror.c | 55 ++++++++++++++++++++++++++++++++++++----------- blockdev.c | 37 +++++++++++++++++++++++++++++-- include/block/block_int.h | 3 ++- qapi/block-core.json | 9 +++++++- 4 files changed, 88 insertions(+), 16 deletions(-) -- 2.14.1