[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Xen-changelog] [qemu-xen-3.4-testing] Fix vectored aio bounce handling immediate errors (Avi Kivity)



commit 1638898c840ca6cad6c91064bc3f5417d21cb7f0
Author: aliguori <aliguori@c046a42c-6fe2-441c-8c8c-71466251a162>
Date:   Sat Mar 28 16:11:20 2009 +0000

    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 <avi@xxxxxxxxxx>
    Signed-off-by: Anthony Liguori <aliguori@xxxxxxxxxx>
    
    git-svn-id: svn://svn.savannah.nongnu.org/qemu/trunk@6892 
c046a42c-6fe2-441c-8c8c-71466251a162
    (cherry picked from commit c240b9af599d20e06a58090366be682684bd8555)
    (cherry picked from commit 090a34b30e3de1e573aaa9c966a8096567a7e8a7)
---
 block.c |    5 +++++
 1 files changed, 5 insertions(+), 0 deletions(-)

diff --git a/block.c b/block.c
index 701a56b..c3c44a9 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;
 }
 
--
generated by git-patchbot for /home/xen/git/qemu-xen-3.4-testing.git

_______________________________________________
Xen-changelog mailing list
Xen-changelog@xxxxxxxxxxxxxxxxxxx
http://lists.xensource.com/xen-changelog


 


Rackspace

Lists.xenproject.org is hosted with RackSpace, monitoring our
servers 24x7x365 and backed by RackSpace's Fanatical Support®.