static void bdrv_drain_recurse(BlockDriverState *bs)

{

    BdrvChild *child;



    if (bs->drv && bs->drv->bdrv_drain) {

        bs->drv->bdrv_drain(bs);

    }

    QLIST_FOREACH(child, &bs->children, next) {

        bdrv_drain_recurse(child->bs);

    }

}

static void bdrv_drain_recurse(BlockDriverState *bs)

{

    BdrvChild *child;



    if (bs->drv && bs->drv->bdrv_drain) {

        bs->drv->bdrv_drain(bs);

    }

    QLIST_FOREACH(child, &bs->children, next) {

        bdrv_drain_recurse(child->bs);

    }

}

static void FUNC_0(BlockDriverState *VAR_0)

{

    BdrvChild *child;



    if (VAR_0->drv && VAR_0->drv->bdrv_drain) {

        VAR_0->drv->bdrv_drain(VAR_0);

    }

    QLIST_FOREACH(child, &VAR_0->children, next) {

        FUNC_0(child->VAR_0);

    }

}

static void FUNC_0(BlockDriverState *VAR_0)
{ BdrvChild *child; if (VAR_0->drv && VAR_0->drv->bdrv_drain) { VAR_0->drv->bdrv_drain(VAR_0); } QLIST_FOREACH(child, &VAR_0->children, next) { FUNC_0(child->VAR_0); } }