aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDor Laor <dor@redhat.com>2009-06-01 12:07:23 +0300
committerAnthony Liguori <aliguori@us.ibm.com>2009-06-16 15:36:47 -0500
commit6a7ad2998ca47711eddd191caa1a95f14459793f (patch)
treeba03e9f24e7d91efccc67e17365262e7711ef50e
parent3fe5c14e7472f88dddf837a9faa60f6abb2ec6bf (diff)
Call qemu_bh_delete at bdrv_aio_bh_cb.
Also replave qemu_bh_cancel with qemu_bh_delete in bdrv_aio_cancel_em. Otherwise the bh will live forever in the bh list. Signed-off-by: Dor Laor <dor@redhat.com> Signed-off-by: Anthony Liguori <aliguori@us.ibm.com>
-rw-r--r--block.c4
1 files changed, 2 insertions, 2 deletions
diff --git a/block.c b/block.c
index c7e0dcbc5c..ad5ee7a170 100644
--- a/block.c
+++ b/block.c
@@ -1373,7 +1373,7 @@ typedef struct BlockDriverAIOCBSync {
static void bdrv_aio_cancel_em(BlockDriverAIOCB *blockacb)
{
BlockDriverAIOCBSync *acb = (BlockDriverAIOCBSync *)blockacb;
- qemu_bh_cancel(acb->bh);
+ qemu_bh_delete(acb->bh);
qemu_aio_release(acb);
}
@@ -1390,7 +1390,7 @@ static void bdrv_aio_bh_cb(void *opaque)
qemu_iovec_from_buffer(acb->qiov, acb->bounce, acb->qiov->size);
qemu_vfree(acb->bounce);
acb->common.cb(acb->common.opaque, acb->ret);
-
+ qemu_bh_delete(acb->bh);
qemu_aio_release(acb);
}