From: Avi Kivity Date: Tue, 23 Jun 2009 13:20:36 +0000 (+0300) Subject: block: Clean up after deleting BHs X-Git-Url: http://git.maquefel.me/?a=commitdiff_plain;h=36afc451599175eb8f03f1962de74e7f7a8af4db;p=qemu.git block: Clean up after deleting BHs Commit 6a7ad299 ("Call qemu_bh_delete at bdrv_aio_bh_cb") deletes emulated aio bottom halves to prevent endless accumulation. However, it leaves a stale ->bh pointer, which is then waited on when the aio is reused. Zeroing the pointer fixes the issue, allowing vmdk format images to be used. Signed-off-by: Avi Kivity Signed-off-by: Anthony Liguori --- diff --git a/block.c b/block.c index aca5a6d282..cefbe77485 100644 --- a/block.c +++ b/block.c @@ -1374,6 +1374,7 @@ static void bdrv_aio_cancel_em(BlockDriverAIOCB *blockacb) { BlockDriverAIOCBSync *acb = (BlockDriverAIOCBSync *)blockacb; qemu_bh_delete(acb->bh); + acb->bh = NULL; qemu_aio_release(acb); } @@ -1391,6 +1392,7 @@ static void bdrv_aio_bh_cb(void *opaque) qemu_vfree(acb->bounce); acb->common.cb(acb->common.opaque, acb->ret); qemu_bh_delete(acb->bh); + acb->bh = NULL; qemu_aio_release(acb); }