From: Ian Jackson Date: Wed, 7 Oct 2009 14:53:58 +0000 (+0100) Subject: Call qemu_bh_delete at bdrv_aio_bh_cb. X-Git-Tag: xen-3.4.3-rc3~10 X-Git-Url: http://xenbits.xensource.com/gitweb?a=commitdiff_plain;h=8e2969fbf7b0919e1c20a24097be7f2cb890575b;p=qemu-xen-4.0-testing.git 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 Signed-off-by: Anthony Liguori [ Backported from 6bbff9a0b495918309074ac60375be5f9dc868b3 by Stefano Stabellini. ] Signed-off-by: Ian Jackson (cherry picked from commit f9ad69304fd52092c54fbf64b2937ebdb9980649) --- diff --git a/block.c b/block.c index 69c6da55..bad2d3da 100644 --- 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); }