]> Git Repo - qemu.git/commit - block/mirror.c
block: per caller dirty bitmap
authorFam Zheng <[email protected]>
Wed, 13 Nov 2013 10:29:43 +0000 (18:29 +0800)
committerKevin Wolf <[email protected]>
Fri, 29 Nov 2013 12:40:33 +0000 (13:40 +0100)
commite4654d2d9406016d6e4e296ba8db3d118caf9ff6
treec994b3434ee97c501a8fe12fd7f812a3c76e3651
parentf4a193e717e6b5179a2e57423bfe110b724662d8
block: per caller dirty bitmap

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 <[email protected]>
Reviewed-by: Stefan Hajnoczi <[email protected]>
Signed-off-by: Kevin Wolf <[email protected]>
block-migration.c
block.c
block/mirror.c
block/qapi.c
include/block/block.h
include/block/block_int.h
This page took 0.026443 seconds and 4 git commands to generate.