]> rtime.felk.cvut.cz Git - lisovros/qemu_apohw.git/commitdiff
qcow2: Fix error handling for immediate backing file read failure
authorKevin Wolf <kwolf@redhat.com>
Tue, 8 Feb 2011 17:12:35 +0000 (18:12 +0100)
committerKevin Wolf <kwolf@redhat.com>
Fri, 11 Feb 2011 13:33:57 +0000 (14:33 +0100)
Requests could return success even though they failed when bdrv_aio_readv
returned NULL for a backing file read.

Reported-by: Chunqiang Tang <ctang@us.ibm.com>
Signed-off-by: Kevin Wolf <kwolf@redhat.com>
(cherry picked from commit 3ab4c7e92d39d40e6dc0bdb1c2320889543691cb)

block/qcow2.c

index 28338bf9d0d215c48bb45f8210753f5ccbb2fcdf..647c2a4bc4d32a3ee93be05344d718fc6c5a9378 100644 (file)
@@ -479,8 +479,10 @@ static void qcow2_aio_read_cb(void *opaque, int ret)
                 BLKDBG_EVENT(bs->file, BLKDBG_READ_BACKING_AIO);
                 acb->hd_aiocb = bdrv_aio_readv(bs->backing_hd, acb->sector_num,
                                     &acb->hd_qiov, n1, qcow2_aio_read_cb, acb);
-                if (acb->hd_aiocb == NULL)
+                if (acb->hd_aiocb == NULL) {
+                    ret = -EIO;
                     goto done;
+                }
             } else {
                 ret = qcow2_schedule_bh(qcow2_aio_read_bh, acb);
                 if (ret < 0)