Commit c240b9af authored by Anthony Liguori's avatar Anthony Liguori
Browse files

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: default avatarAvi Kivity <avi@redhat.com>
Signed-off-by: default avatarAnthony Liguori <aliguori@us.ibm.com>


git-svn-id: svn://svn.savannah.nongnu.org/qemu/trunk@6892 c046a42c-6fe2-441c-8c8c-71466251a162
parent 7cd0874c
Loading
Loading
Loading
Loading
+5 −0
Original line number Diff line number Diff line
@@ -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;
}