Lines Matching refs:bs

34     BlockDriverState *bs;  member
64 static inline void bdrv_dirty_bitmaps_lock(BlockDriverState *bs) in bdrv_dirty_bitmaps_lock() argument
66 qemu_mutex_lock(&bs->dirty_bitmap_mutex); in bdrv_dirty_bitmaps_lock()
69 static inline void bdrv_dirty_bitmaps_unlock(BlockDriverState *bs) in bdrv_dirty_bitmaps_unlock() argument
71 qemu_mutex_unlock(&bs->dirty_bitmap_mutex); in bdrv_dirty_bitmaps_unlock()
76 bdrv_dirty_bitmaps_lock(bitmap->bs); in bdrv_dirty_bitmap_lock()
81 bdrv_dirty_bitmaps_unlock(bitmap->bs); in bdrv_dirty_bitmap_unlock()
85 BdrvDirtyBitmap *bdrv_find_dirty_bitmap(BlockDriverState *bs, const char *name) in bdrv_find_dirty_bitmap() argument
90 QLIST_FOREACH(bm, &bs->dirty_bitmaps, list) { in bdrv_find_dirty_bitmap()
99 BdrvDirtyBitmap *bdrv_create_dirty_bitmap(BlockDriverState *bs, in bdrv_create_dirty_bitmap() argument
110 if (bdrv_find_dirty_bitmap(bs, name)) { in bdrv_create_dirty_bitmap()
119 bitmap_size = bdrv_getlength(bs); in bdrv_create_dirty_bitmap()
126 bitmap->bs = bs; in bdrv_create_dirty_bitmap()
131 bdrv_dirty_bitmaps_lock(bs); in bdrv_create_dirty_bitmap()
132 QLIST_INSERT_HEAD(&bs->dirty_bitmaps, bitmap, list); in bdrv_create_dirty_bitmap()
133 bdrv_dirty_bitmaps_unlock(bs); in bdrv_create_dirty_bitmap()
160 bdrv_dirty_bitmaps_lock(bitmap->bs); in bdrv_dirty_bitmap_set_busy()
162 bdrv_dirty_bitmaps_unlock(bitmap->bs); in bdrv_dirty_bitmap_set_busy()
227 child = bdrv_create_dirty_bitmap(bitmap->bs, granularity, NULL, errp); in bdrv_dirty_bitmap_create_successor()
250 assert(bitmap->bs == bitmap->successor->bs); in bdrv_dirty_bitmap_enable_successor()
251 bdrv_dirty_bitmaps_lock(bitmap->bs); in bdrv_dirty_bitmap_enable_successor()
253 bdrv_dirty_bitmaps_unlock(bitmap->bs); in bdrv_dirty_bitmap_enable_successor()
330 bdrv_dirty_bitmaps_lock(parent->bs); in bdrv_reclaim_dirty_bitmap()
332 bdrv_dirty_bitmaps_unlock(parent->bs); in bdrv_reclaim_dirty_bitmap()
341 void bdrv_dirty_bitmap_truncate(BlockDriverState *bs, int64_t bytes) in bdrv_dirty_bitmap_truncate() argument
345 bdrv_dirty_bitmaps_lock(bs); in bdrv_dirty_bitmap_truncate()
346 QLIST_FOREACH(bitmap, &bs->dirty_bitmaps, list) { in bdrv_dirty_bitmap_truncate()
353 bdrv_dirty_bitmaps_unlock(bs); in bdrv_dirty_bitmap_truncate()
359 BlockDriverState *bs = bitmap->bs; in bdrv_release_dirty_bitmap() local
361 bdrv_dirty_bitmaps_lock(bs); in bdrv_release_dirty_bitmap()
363 bdrv_dirty_bitmaps_unlock(bs); in bdrv_release_dirty_bitmap()
372 void bdrv_release_named_dirty_bitmaps(BlockDriverState *bs) in bdrv_release_named_dirty_bitmaps() argument
376 bdrv_dirty_bitmaps_lock(bs); in bdrv_release_named_dirty_bitmaps()
377 QLIST_FOREACH_SAFE(bm, &bs->dirty_bitmaps, list, next) { in bdrv_release_named_dirty_bitmaps()
382 bdrv_dirty_bitmaps_unlock(bs); in bdrv_release_named_dirty_bitmaps()
394 bdrv_co_remove_persistent_dirty_bitmap(BlockDriverState *bs, const char *name, in bdrv_co_remove_persistent_dirty_bitmap() argument
398 if (bs->drv && bs->drv->bdrv_co_remove_persistent_dirty_bitmap) { in bdrv_co_remove_persistent_dirty_bitmap()
399 return bs->drv->bdrv_co_remove_persistent_dirty_bitmap(bs, name, errp); in bdrv_co_remove_persistent_dirty_bitmap()
406 bdrv_supports_persistent_dirty_bitmap(BlockDriverState *bs) in bdrv_supports_persistent_dirty_bitmap() argument
408 if (bs->drv && bs->drv->bdrv_supports_persistent_dirty_bitmap) { in bdrv_supports_persistent_dirty_bitmap()
409 return bs->drv->bdrv_supports_persistent_dirty_bitmap(bs); in bdrv_supports_persistent_dirty_bitmap()
415 bdrv_co_can_store_new_dirty_bitmap(BlockDriverState *bs, const char *name, in bdrv_co_can_store_new_dirty_bitmap() argument
418 BlockDriver *drv = bs->drv; in bdrv_co_can_store_new_dirty_bitmap()
424 bdrv_get_device_or_node_name(bs)); in bdrv_co_can_store_new_dirty_bitmap()
431 bdrv_get_device_or_node_name(bs)); in bdrv_co_can_store_new_dirty_bitmap()
435 return drv->bdrv_co_can_store_new_dirty_bitmap(bs, name, granularity, errp); in bdrv_co_can_store_new_dirty_bitmap()
440 bdrv_dirty_bitmaps_lock(bitmap->bs); in bdrv_disable_dirty_bitmap()
442 bdrv_dirty_bitmaps_unlock(bitmap->bs); in bdrv_disable_dirty_bitmap()
447 bdrv_dirty_bitmaps_lock(bitmap->bs); in bdrv_enable_dirty_bitmap()
449 bdrv_dirty_bitmaps_unlock(bitmap->bs); in bdrv_enable_dirty_bitmap()
452 BlockDirtyInfoList *bdrv_query_dirty_bitmaps(BlockDriverState *bs) in bdrv_query_dirty_bitmaps() argument
458 bdrv_dirty_bitmaps_lock(bs); in bdrv_query_dirty_bitmaps()
459 QLIST_FOREACH(bm, &bs->dirty_bitmaps, list) { in bdrv_query_dirty_bitmaps()
472 bdrv_dirty_bitmaps_unlock(bs); in bdrv_query_dirty_bitmaps()
486 bdrv_dirty_bitmaps_lock(bitmap->bs); in bdrv_dirty_bitmap_get()
488 bdrv_dirty_bitmaps_unlock(bitmap->bs); in bdrv_dirty_bitmap_get()
498 uint32_t bdrv_get_default_bitmap_granularity(BlockDriverState *bs) in bdrv_get_default_bitmap_granularity() argument
503 if (bdrv_get_info(bs, &bdi) >= 0 && bdi.cluster_size > 0) { in bdrv_get_default_bitmap_granularity()
553 bdrv_dirty_bitmaps_lock(bitmap->bs); in bdrv_set_dirty_bitmap()
555 bdrv_dirty_bitmaps_unlock(bitmap->bs); in bdrv_set_dirty_bitmap()
569 bdrv_dirty_bitmaps_lock(bitmap->bs); in bdrv_reset_dirty_bitmap()
571 bdrv_dirty_bitmaps_unlock(bitmap->bs); in bdrv_reset_dirty_bitmap()
578 bdrv_dirty_bitmaps_lock(bitmap->bs); in bdrv_clear_dirty_bitmap()
587 bdrv_dirty_bitmaps_unlock(bitmap->bs); in bdrv_clear_dirty_bitmap()
656 void bdrv_set_dirty(BlockDriverState *bs, int64_t offset, int64_t bytes) in bdrv_set_dirty() argument
661 if (QLIST_EMPTY(&bs->dirty_bitmaps)) { in bdrv_set_dirty()
665 bdrv_dirty_bitmaps_lock(bs); in bdrv_set_dirty()
666 QLIST_FOREACH(bitmap, &bs->dirty_bitmaps, list) { in bdrv_set_dirty()
673 bdrv_dirty_bitmaps_unlock(bs); in bdrv_set_dirty()
697 bdrv_dirty_bitmaps_lock(bitmap->bs); in bdrv_dirty_bitmap_set_readonly()
699 bdrv_dirty_bitmaps_unlock(bitmap->bs); in bdrv_dirty_bitmap_set_readonly()
702 bool bdrv_has_readonly_bitmaps(BlockDriverState *bs) in bdrv_has_readonly_bitmaps() argument
705 QLIST_FOREACH(bm, &bs->dirty_bitmaps, list) { in bdrv_has_readonly_bitmaps()
714 bool bdrv_has_named_bitmaps(BlockDriverState *bs) in bdrv_has_named_bitmaps() argument
718 QLIST_FOREACH(bm, &bs->dirty_bitmaps, list) { in bdrv_has_named_bitmaps()
730 bdrv_dirty_bitmaps_lock(bitmap->bs); in bdrv_dirty_bitmap_set_persistence()
732 bdrv_dirty_bitmaps_unlock(bitmap->bs); in bdrv_dirty_bitmap_set_persistence()
738 bdrv_dirty_bitmaps_lock(bitmap->bs); in bdrv_dirty_bitmap_set_inconsistent()
742 bdrv_dirty_bitmaps_unlock(bitmap->bs); in bdrv_dirty_bitmap_set_inconsistent()
748 bdrv_dirty_bitmaps_lock(bitmap->bs); in bdrv_dirty_bitmap_skip_store()
750 bdrv_dirty_bitmaps_unlock(bitmap->bs); in bdrv_dirty_bitmap_skip_store()
763 BdrvDirtyBitmap *bdrv_dirty_bitmap_first(BlockDriverState *bs) in bdrv_dirty_bitmap_first() argument
765 return QLIST_FIRST(&bs->dirty_bitmaps); in bdrv_dirty_bitmap_first()
818 bdrv_dirty_bitmaps_lock(dest->bs); in bdrv_merge_dirty_bitmap()
819 if (src->bs != dest->bs) { in bdrv_merge_dirty_bitmap()
820 bdrv_dirty_bitmaps_lock(src->bs); in bdrv_merge_dirty_bitmap()
842 bdrv_dirty_bitmaps_unlock(dest->bs); in bdrv_merge_dirty_bitmap()
843 if (src->bs != dest->bs) { in bdrv_merge_dirty_bitmap()
844 bdrv_dirty_bitmaps_unlock(src->bs); in bdrv_merge_dirty_bitmap()
870 bdrv_dirty_bitmaps_lock(dest->bs); in bdrv_dirty_bitmap_merge_internal()
871 if (src->bs != dest->bs) { in bdrv_dirty_bitmap_merge_internal()
872 bdrv_dirty_bitmaps_lock(src->bs); in bdrv_dirty_bitmap_merge_internal()
885 bdrv_dirty_bitmaps_unlock(dest->bs); in bdrv_dirty_bitmap_merge_internal()
886 if (src->bs != dest->bs) { in bdrv_dirty_bitmap_merge_internal()
887 bdrv_dirty_bitmaps_unlock(src->bs); in bdrv_dirty_bitmap_merge_internal()