Commit cca43ae1 authored by Vladimir Sementsov-Ogievskiy's avatar Vladimir Sementsov-Ogievskiy Committed by Max Reitz
Browse files

block: bdrv_close: release bitmaps after drv->bdrv_close



Release bitmaps after 'if (bs->drv) { ... }' block. This will allow
format driver to save persistent bitmaps, which will appear in following
commits.

Signed-off-by: default avatarVladimir Sementsov-Ogievskiy <vsementsov@virtuozzo.com>
Reviewed-by: default avatarMax Reitz <mreitz@redhat.com>
Message-id: 20170628120530.31251-17-vsementsov@virtuozzo.com
Signed-off-by: default avatarMax Reitz <mreitz@redhat.com>
parent a0319aac
Loading
Loading
Loading
Loading
+3 −3
Original line number Original line Diff line number Diff line
@@ -3054,9 +3054,6 @@ static void bdrv_close(BlockDriverState *bs)
    bdrv_flush(bs);
    bdrv_flush(bs);
    bdrv_drain(bs); /* in case flush left pending I/O */
    bdrv_drain(bs); /* in case flush left pending I/O */


    bdrv_release_named_dirty_bitmaps(bs);
    assert(QLIST_EMPTY(&bs->dirty_bitmaps));

    if (bs->drv) {
    if (bs->drv) {
        BdrvChild *child, *next;
        BdrvChild *child, *next;


@@ -3094,6 +3091,9 @@ static void bdrv_close(BlockDriverState *bs)
        bs->full_open_options = NULL;
        bs->full_open_options = NULL;
    }
    }


    bdrv_release_named_dirty_bitmaps(bs);
    assert(QLIST_EMPTY(&bs->dirty_bitmaps));

    QLIST_FOREACH_SAFE(ban, &bs->aio_notifiers, list, ban_next) {
    QLIST_FOREACH_SAFE(ban, &bs->aio_notifiers, list, ban_next) {
        g_free(ban);
        g_free(ban);
    }
    }