mirror of https://github.com/proxmox/mirror_qemu
block: Drop bdrv_em_co_aiocb_info.cancel
Also drop the now unused ->done pointer. Signed-off-by: Fam Zheng <famz@redhat.com> Signed-off-by: Stefan Hajnoczi <stefanha@redhat.com>master
parent
02c50efe08
commit
3acabd685e
21
block.c
21
block.c
|
@ -4763,22 +4763,8 @@ typedef struct BlockDriverAIOCBCoroutine {
|
||||||
QEMUBH* bh;
|
QEMUBH* bh;
|
||||||
} BlockDriverAIOCBCoroutine;
|
} BlockDriverAIOCBCoroutine;
|
||||||
|
|
||||||
static void bdrv_aio_co_cancel_em(BlockDriverAIOCB *blockacb)
|
|
||||||
{
|
|
||||||
AioContext *aio_context = bdrv_get_aio_context(blockacb->bs);
|
|
||||||
BlockDriverAIOCBCoroutine *acb =
|
|
||||||
container_of(blockacb, BlockDriverAIOCBCoroutine, common);
|
|
||||||
bool done = false;
|
|
||||||
|
|
||||||
acb->done = &done;
|
|
||||||
while (!done) {
|
|
||||||
aio_poll(aio_context, true);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
static const AIOCBInfo bdrv_em_co_aiocb_info = {
|
static const AIOCBInfo bdrv_em_co_aiocb_info = {
|
||||||
.aiocb_size = sizeof(BlockDriverAIOCBCoroutine),
|
.aiocb_size = sizeof(BlockDriverAIOCBCoroutine),
|
||||||
.cancel = bdrv_aio_co_cancel_em,
|
|
||||||
};
|
};
|
||||||
|
|
||||||
static void bdrv_co_em_bh(void *opaque)
|
static void bdrv_co_em_bh(void *opaque)
|
||||||
|
@ -4787,10 +4773,6 @@ static void bdrv_co_em_bh(void *opaque)
|
||||||
|
|
||||||
acb->common.cb(acb->common.opaque, acb->req.error);
|
acb->common.cb(acb->common.opaque, acb->req.error);
|
||||||
|
|
||||||
if (acb->done) {
|
|
||||||
*acb->done = true;
|
|
||||||
}
|
|
||||||
|
|
||||||
qemu_bh_delete(acb->bh);
|
qemu_bh_delete(acb->bh);
|
||||||
qemu_aio_release(acb);
|
qemu_aio_release(acb);
|
||||||
}
|
}
|
||||||
|
@ -4831,7 +4813,6 @@ static BlockDriverAIOCB *bdrv_co_aio_rw_vector(BlockDriverState *bs,
|
||||||
acb->req.qiov = qiov;
|
acb->req.qiov = qiov;
|
||||||
acb->req.flags = flags;
|
acb->req.flags = flags;
|
||||||
acb->is_write = is_write;
|
acb->is_write = is_write;
|
||||||
acb->done = NULL;
|
|
||||||
|
|
||||||
co = qemu_coroutine_create(bdrv_co_do_rw);
|
co = qemu_coroutine_create(bdrv_co_do_rw);
|
||||||
qemu_coroutine_enter(co, acb);
|
qemu_coroutine_enter(co, acb);
|
||||||
|
@ -4858,7 +4839,6 @@ BlockDriverAIOCB *bdrv_aio_flush(BlockDriverState *bs,
|
||||||
BlockDriverAIOCBCoroutine *acb;
|
BlockDriverAIOCBCoroutine *acb;
|
||||||
|
|
||||||
acb = qemu_aio_get(&bdrv_em_co_aiocb_info, bs, cb, opaque);
|
acb = qemu_aio_get(&bdrv_em_co_aiocb_info, bs, cb, opaque);
|
||||||
acb->done = NULL;
|
|
||||||
|
|
||||||
co = qemu_coroutine_create(bdrv_aio_flush_co_entry);
|
co = qemu_coroutine_create(bdrv_aio_flush_co_entry);
|
||||||
qemu_coroutine_enter(co, acb);
|
qemu_coroutine_enter(co, acb);
|
||||||
|
@ -4888,7 +4868,6 @@ BlockDriverAIOCB *bdrv_aio_discard(BlockDriverState *bs,
|
||||||
acb = qemu_aio_get(&bdrv_em_co_aiocb_info, bs, cb, opaque);
|
acb = qemu_aio_get(&bdrv_em_co_aiocb_info, bs, cb, opaque);
|
||||||
acb->req.sector = sector_num;
|
acb->req.sector = sector_num;
|
||||||
acb->req.nb_sectors = nb_sectors;
|
acb->req.nb_sectors = nb_sectors;
|
||||||
acb->done = NULL;
|
|
||||||
co = qemu_coroutine_create(bdrv_aio_discard_co_entry);
|
co = qemu_coroutine_create(bdrv_aio_discard_co_entry);
|
||||||
qemu_coroutine_enter(co, acb);
|
qemu_coroutine_enter(co, acb);
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue