void bdrv_release_dirty_bitmap(BlockDriverState *bs, BdrvDirtyBitmap *bitmap)

{

    BdrvDirtyBitmap *bm, *next;

    QLIST_FOREACH_SAFE(bm, &bs->dirty_bitmaps, list, next) {

        if (bm == bitmap) {

            assert(!bdrv_dirty_bitmap_frozen(bm));

            QLIST_REMOVE(bitmap, list);

            hbitmap_free(bitmap->bitmap);

            g_free(bitmap->name);

            g_free(bitmap);

            return;

        }

    }

}

void bdrv_release_dirty_bitmap(BlockDriverState *bs, BdrvDirtyBitmap *bitmap)

{

    BdrvDirtyBitmap *bm, *next;

    QLIST_FOREACH_SAFE(bm, &bs->dirty_bitmaps, list, next) {

        if (bm == bitmap) {

            assert(!bdrv_dirty_bitmap_frozen(bm));

            QLIST_REMOVE(bitmap, list);

            hbitmap_free(bitmap->bitmap);

            g_free(bitmap->name);

            g_free(bitmap);

            return;

        }

    }

}

void FUNC_0(BlockDriverState *VAR_0, BdrvDirtyBitmap *VAR_1)

{

    BdrvDirtyBitmap *bm, *next;

    QLIST_FOREACH_SAFE(bm, &VAR_0->dirty_bitmaps, list, next) {

        if (bm == VAR_1) {

            assert(!bdrv_dirty_bitmap_frozen(bm));

            QLIST_REMOVE(VAR_1, list);

            hbitmap_free(VAR_1->VAR_1);

            g_free(VAR_1->name);

            g_free(VAR_1);

            return;

        }

    }

}

void FUNC_0(BlockDriverState *VAR_0, BdrvDirtyBitmap *VAR_1)
{ BdrvDirtyBitmap *bm, *next; QLIST_FOREACH_SAFE(bm, &VAR_0->dirty_bitmaps, list, next) { if (bm == VAR_1) { assert(!bdrv_dirty_bitmap_frozen(bm)); QLIST_REMOVE(VAR_1, list); hbitmap_free(VAR_1->VAR_1); g_free(VAR_1->name); g_free(VAR_1); return; } } }