void bdrv_aio_cancel(BlockAIOCB *acb)

{

    qemu_aio_ref(acb);

    bdrv_aio_cancel_async(acb);

    while (acb->refcnt > 1) {

        if (acb->aiocb_info->get_aio_context) {

            aio_poll(acb->aiocb_info->get_aio_context(acb), true);

        } else if (acb->bs) {

            aio_poll(bdrv_get_aio_context(acb->bs), true);

        } else {

            abort();

        }

    }

    qemu_aio_unref(acb);

}

void bdrv_aio_cancel(BlockAIOCB *acb)

{

    qemu_aio_ref(acb);

    bdrv_aio_cancel_async(acb);

    while (acb->refcnt > 1) {

        if (acb->aiocb_info->get_aio_context) {

            aio_poll(acb->aiocb_info->get_aio_context(acb), true);

        } else if (acb->bs) {

            aio_poll(bdrv_get_aio_context(acb->bs), true);

        } else {

            abort();

        }

    }

    qemu_aio_unref(acb);

}

void FUNC_0(BlockAIOCB *VAR_0)

{

    qemu_aio_ref(VAR_0);

    bdrv_aio_cancel_async(VAR_0);

    while (VAR_0->refcnt > 1) {

        if (VAR_0->aiocb_info->get_aio_context) {

            aio_poll(VAR_0->aiocb_info->get_aio_context(VAR_0), true);

        } else if (VAR_0->bs) {

            aio_poll(bdrv_get_aio_context(VAR_0->bs), true);

        } else {

            abort();

        }

    }

    qemu_aio_unref(VAR_0);

}

void FUNC_0(BlockAIOCB *VAR_0)
{ qemu_aio_ref(VAR_0); bdrv_aio_cancel_async(VAR_0); while (VAR_0->refcnt > 1) { if (VAR_0->aiocb_info->get_aio_context) { aio_poll(VAR_0->aiocb_info->get_aio_context(VAR_0), true); } else if (VAR_0->bs) { aio_poll(bdrv_get_aio_context(VAR_0->bs), true); } else { abort(); } } qemu_aio_unref(VAR_0); }