Message ID | 20180416114414.18406-2-vsementsov@virtuozzo.com |
---|---|
State | New |
Headers | show |
Series | Dirty bitmaps fixing and refactoring | expand |
On 04/16/2018 07:44 AM, Vladimir Sementsov-Ogievskiy wrote: > Functions write to BdrvDirtyBitmap field, so the should take the lock. > > Signed-off-by: Vladimir Sementsov-Ogievskiy <vsementsov@virtuozzo.com> Looks like this won't introduce any recursive locking that I can spot, so this looks correct. Reviewed-by: John Snow <jsnow@redhat.com>
diff --git a/block/dirty-bitmap.c b/block/dirty-bitmap.c index 967159479d..6c00288fd7 100644 --- a/block/dirty-bitmap.c +++ b/block/dirty-bitmap.c @@ -445,15 +445,19 @@ void bdrv_remove_persistent_dirty_bitmap(BlockDriverState *bs, /* Called with BQL taken. */ void bdrv_disable_dirty_bitmap(BdrvDirtyBitmap *bitmap) { + bdrv_dirty_bitmap_lock(bitmap); assert(!bdrv_dirty_bitmap_frozen(bitmap)); bitmap->disabled = true; + bdrv_dirty_bitmap_unlock(bitmap); } /* Called with BQL taken. */ void bdrv_enable_dirty_bitmap(BdrvDirtyBitmap *bitmap) { + bdrv_dirty_bitmap_lock(bitmap); assert(!bdrv_dirty_bitmap_frozen(bitmap)); bitmap->disabled = false; + bdrv_dirty_bitmap_unlock(bitmap); } BlockDirtyInfoList *bdrv_query_dirty_bitmaps(BlockDriverState *bs)
Functions write to BdrvDirtyBitmap field, so the should take the lock. Signed-off-by: Vladimir Sementsov-Ogievskiy <vsementsov@virtuozzo.com> --- block/dirty-bitmap.c | 4 ++++ 1 file changed, 4 insertions(+)