On Mon, Nov 04, 2013 at 05:30:10PM +0800, Fam Zheng wrote: > Previously a BlockDriverState has only one dirty bitmap, so only one > caller (e.g. a block job) can keep track of writing. This changes the > dirty bitmap to a list and creates a BdrvDirtyBitmap for each caller, the > lifecycle is managed with these new functions: > > bdrv_create_dirty_bitmap > bdrv_release_dirty_bitmap > > Where BdrvDirtyBitmap is a linked list wrapper structure of HBitmap. > > In place of bdrv_set_dirty_tracking, a BdrvDirtyBitmap pointer argument > is added to these functions, since each caller has its own dirty bitmap: > > bdrv_get_dirty > bdrv_dirty_iter_init > bdrv_get_dirty_count > > bdrv_set_dirty and bdrv_reset_dirty prototypes are unchanged but will > internally walk the list of all dirty bitmaps and set them one by one. > > Signed-off-by: Fam Zheng <f...@redhat.com> > > --- > v2: Added BdrvDirtyBitmap [Paolo] > > Signed-off-by: Fam Zheng <f...@redhat.com> > --- > block-migration.c | 22 +++++++++---- > block.c | 81 > ++++++++++++++++++++++++++++------------------- > block/mirror.c | 23 ++++++++------ > block/qapi.c | 8 ----- > include/block/block.h | 11 ++++--- > include/block/block_int.h | 2 +- > 6 files changed, 85 insertions(+), 62 deletions(-)
Happy with this modulo the indentation fixup I commented on. Reviewed-by: Stefan Hajnoczi <stefa...@redhat.com>