aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorKevin Wolf <kwolf@redhat.com>2010-04-06 15:30:09 +0200
committerAurelien Jarno <aurelien@aurel32.net>2010-04-10 01:51:35 +0200
commite00722122380b173eccfa246167241c8adf940c6 (patch)
tree10db54d7c90034a7be2e5e38fe1e8e2e30d86e35
parentblock: Fix multiwrite memory leak in error case (diff)
downloadqemu-kvm-e00722122380b173eccfa246167241c8adf940c6.tar.gz
qemu-kvm-e00722122380b173eccfa246167241c8adf940c6.tar.bz2
qemu-kvm-e00722122380b173eccfa246167241c8adf940c6.zip
qcow2: Don't ignore immediate read/write failures
Returning -EIO is far from optimal, but at least it's an error code. Signed-off-by: Kevin Wolf <kwolf@redhat.com> Signed-off-by: Aurelien Jarno <aurelien@aurel32.net> (cherry picked from commit 171e3d6b9997c98a97d0c525867f7cd9b640cadd)
-rw-r--r--block/qcow2.c8
1 files changed, 6 insertions, 2 deletions
diff --git a/block/qcow2.c b/block/qcow2.c
index 4ae8f193d..f6f8980ed 100644
--- a/block/qcow2.c
+++ b/block/qcow2.c
@@ -467,8 +467,10 @@ static void qcow_aio_read_cb(void *opaque, int ret)
acb->hd_aiocb = bdrv_aio_readv(s->hd,
(acb->cluster_offset >> 9) + index_in_cluster,
&acb->hd_qiov, acb->n, qcow_aio_read_cb, acb);
- if (acb->hd_aiocb == NULL)
+ if (acb->hd_aiocb == NULL) {
+ ret = -EIO;
goto done;
+ }
}
return;
@@ -620,8 +622,10 @@ static void qcow_aio_write_cb(void *opaque, int ret)
(acb->cluster_offset >> 9) + index_in_cluster,
&acb->hd_qiov, acb->n,
qcow_aio_write_cb, acb);
- if (acb->hd_aiocb == NULL)
+ if (acb->hd_aiocb == NULL) {
+ ret = -EIO;
goto done;
+ }
return;