[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Qemu-devel] [PATCH 7/8] qcow2: Return real error in qcow2_update_snapsh
From: |
Kevin Wolf |
Subject: |
[Qemu-devel] [PATCH 7/8] qcow2: Return real error in qcow2_update_snapshot_refcount |
Date: |
Fri, 5 Apr 2013 15:28:09 +0200 |
This fixes the error message triggered by the following script:
cat > /tmp/blkdebug.cfg <<EOF
[inject-error]
event = "cluster_free"
errno = "28"
immediately = "off"
EOF
$qemu_img create -f qcow2 test.qcow2 10G
$qemu_img snapshot -c snap test.qcow2
$qemu_img snapshot -d snap blkdebug:/tmp/blkdebug.cfg:test.qcow2
Signed-off-by: Kevin Wolf <address@hidden>
---
block/qcow2-refcount.c | 11 +++++------
1 file changed, 5 insertions(+), 6 deletions(-)
diff --git a/block/qcow2-refcount.c b/block/qcow2-refcount.c
index c38e970..4799681 100644
--- a/block/qcow2-refcount.c
+++ b/block/qcow2-refcount.c
@@ -747,10 +747,9 @@ int qcow2_update_snapshot_refcount(BlockDriverState *bs,
if (l1_table_offset != s->l1_table_offset) {
l1_table = g_malloc0(align_offset(l1_size2, 512));
l1_allocated = 1;
- if (bdrv_pread(bs->file, l1_table_offset,
- l1_table, l1_size2) != l1_size2)
- {
- ret = -EIO;
+
+ ret = bdrv_pread(bs->file, l1_table_offset, l1_table, l1_size2);
+ if (ret < 0) {
goto fail;
}
@@ -802,7 +801,7 @@ int qcow2_update_snapshot_refcount(BlockDriverState *bs,
}
if (refcount < 0) {
- ret = -EIO;
+ ret = refcount;
goto fail;
}
}
@@ -833,7 +832,7 @@ int qcow2_update_snapshot_refcount(BlockDriverState *bs,
refcount = get_refcount(bs, l2_offset >> s->cluster_bits);
}
if (refcount < 0) {
- ret = -EIO;
+ ret = refcount;
goto fail;
} else if (refcount == 1) {
l2_offset |= QCOW_OFLAG_COPIED;
--
1.8.1.4
- [Qemu-devel] [PATCH 2/8] usb-storage: Forward serial number to scsi-disk, (continued)
[Qemu-devel] [PATCH 5/8] block: drop duplicated slice extension code, Kevin Wolf, 2013/04/05
[Qemu-devel] [PATCH 3/8] block: fix I/O throttling accounting blind spot, Kevin Wolf, 2013/04/05
[Qemu-devel] [PATCH 6/8] block: clean up I/O throttling wait_time code, Kevin Wolf, 2013/04/05
[Qemu-devel] [PATCH 8/8] qcow2: Fix L1 write error handling in qcow2_update_snapshot_refcount, Kevin Wolf, 2013/04/05
[Qemu-devel] [PATCH 7/8] qcow2: Return real error in qcow2_update_snapshot_refcount,
Kevin Wolf <=
[Qemu-devel] [PATCH 4/8] block: keep I/O throttling slice time constant, Kevin Wolf, 2013/04/05