From 090a34b30e3de1e573aaa9c966a8096567a7e8a7 Mon Sep 17 00:00:00 2001 From: aliguori Date: Sat, 28 Mar 2009 16:11:20 +0000 Subject: [PATCH] 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 (cherry picked from commit c240b9af599d20e06a58090366be682684bd8555) --- block.c | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/block.c b/block.c index 701a56b2..c3c44a95 100644 --- a/block.c +++ b/block.c @@ -1414,6 +1414,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; } -- 2.39.5