]> xenbits.xensource.com Git - qemu-xen-4.5-testing.git/commitdiff
Call qemu_bh_delete at bdrv_aio_bh_cb.
authorIan Jackson <ian.jackson@eu.citrix.com>
Wed, 7 Oct 2009 14:53:58 +0000 (15:53 +0100)
committerIan Jackson <Ian.Jackson@eu.citrix.com>
Wed, 7 Oct 2009 14:53:58 +0000 (15:53 +0100)
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>
[ Backported from 6bbff9a0b495918309074ac60375be5f9dc868b3
  by Stefano Stabellini. ]

Signed-off-by: Ian Jackson <ian.jackson@eu.citrix.com>
block.c

diff --git a/block.c b/block.c
index 69c6da55f0ec42d56d1a32793da544de2b222123..bad2d3da9bc6c97db0ee597a095048235be9a767 100644 (file)
--- a/block.c
+++ b/block.c
@@ -1522,6 +1522,7 @@ static void bdrv_aio_bh_cb(void *opaque)
 {
     BlockDriverAIOCBSync *acb = opaque;
     acb->common.cb(acb->common.opaque, acb->ret);
+    qemu_bh_delete(acb->bh);
     qemu_aio_release(acb);
 }
 
@@ -1560,7 +1561,7 @@ static BlockDriverAIOCB *bdrv_aio_write_em(BlockDriverState *bs,
 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);
 }