Am 13.11.2013 um 15:33 hat Fam Zheng geschrieben: > On Wed, Nov 13, 2013 at 6:29 PM, Fam Zheng <f...@redhat.com> 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>
> > @@ -2785,9 +2792,7 @@ static int coroutine_fn > > bdrv_co_do_writev(BlockDriverState *bs, > > ret = bdrv_co_flush(bs); > > } > > > > - if (bs->dirty_bitmap) { > > bdrv_set_dirty(bs, sector_num, nb_sectors); > > - } > > Sorry, forgot to fix this indentation. Kevin, could you fix it when > applying? Thanks. Yes, I already did that (and added Stefan's Reviewed-by, as this patch is unchanged compared to v2). Kevin