]> git.proxmox.com Git - qemu.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>
Thu, 10 Feb 2011 12:23:44 +0000 (13:23 +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>
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)