From: aliguori Date: Sat, 28 Mar 2009 16:11:20 +0000 (+0000) Subject: Fix vectored aio bounce handling immediate errors (Avi Kivity) X-Git-Tag: qemu-xen-4.2.0~7551 X-Git-Url: http://xenbits.xensource.com/gitweb?a=commitdiff_plain;h=c240b9af599d20e06a58090366be682684bd8555;p=qemu-xen.git Fix vectored aio bounce handling immediate errors (Avi Kivity) If a bounced vectored aio fails immediately (the inner aio submission returning NULL) then the bounce handler erronously returns an aio request which will never be completed (and which crashes when cancelled). Fix by detecting that the inner request has failed and propagating the error. Signed-off-by: Avi Kivity Signed-off-by: Anthony Liguori git-svn-id: svn://svn.savannah.nongnu.org/qemu/trunk@6892 c046a42c-6fe2-441c-8c8c-71466251a162 --- diff --git a/block.c b/block.c index fd09dffb6c..6479072e9b 100644 --- a/block.c +++ b/block.c @@ -1306,6 +1306,11 @@ static BlockDriverAIOCB *bdrv_aio_rw_vector(BlockDriverState *bs, s->aiocb = bdrv_aio_read(bs, sector_num, s->bounce, nb_sectors, bdrv_aio_rw_vector_cb, s); } + if (!s->aiocb) { + qemu_vfree(s->bounce); + qemu_aio_release(s); + return NULL; + } return &s->common; }