[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Qemu-devel] [STABLE PATCH 2/6] qcow2: Clear L2 table cache after write
From: |
Kevin Wolf |
Subject: |
[Qemu-devel] [STABLE PATCH 2/6] qcow2: Clear L2 table cache after write error |
Date: |
Fri, 28 May 2010 20:01:28 +0200 |
If the L2 table was already updated in cache, but writing it to disk has
failed, we must not continue using the changed version in the cache to stay
consistent with what's on the disk.
Signed-off-by: Kevin Wolf <address@hidden>
(cherry picked from commit 1b7c801b40ce90795397bb566d019c9b76ef9c13)
Conflicts:
block/qcow2-cluster.c
Signed-off-by: Kevin Wolf <address@hidden>
---
block/qcow2-cluster.c | 5 +++--
1 files changed, 3 insertions(+), 2 deletions(-)
diff --git a/block/qcow2-cluster.c b/block/qcow2-cluster.c
index c7057b1..0dc4f1d 100644
--- a/block/qcow2-cluster.c
+++ b/block/qcow2-cluster.c
@@ -672,8 +672,9 @@ int qcow2_alloc_cluster_link_l2(BlockDriverState *bs,
QCowL2Meta *m)
(i << s->cluster_bits)) | QCOW_OFLAG_COPIED);
}
- if (write_l2_entries(s, l2_table, l2_offset, l2_index, m->nb_clusters) <
0) {
- ret = -1;
+ ret = write_l2_entries(s, l2_table, l2_offset, l2_index, m->nb_clusters);
+ if (ret < 0) {
+ qcow2_l2_cache_reset(bs);
goto err;
}
--
1.6.6.1
- [Qemu-devel] [STABLE PULL 0/6] Block patches for 0.12.x, Kevin Wolf, 2010/05/28
- [Qemu-devel] [STABLE PATCH 6/6] qcow2: Fix corruption after error in update_refcount, Kevin Wolf, 2010/05/28
- [Qemu-devel] [STABLE PATCH 4/6] block: Fix multiwrite with overlapping requests, Kevin Wolf, 2010/05/28
- [Qemu-devel] [STABLE PATCH 5/6] qcow2: Fix corruption after refblock allocation, Kevin Wolf, 2010/05/28
- [Qemu-devel] [STABLE PATCH 3/6] qcow2: Fix error handling in l2_allocate, Kevin Wolf, 2010/05/28
- [Qemu-devel] [STABLE PATCH 2/6] qcow2: Clear L2 table cache after write error,
Kevin Wolf <=
- [Qemu-devel] [STABLE PATCH 1/6] ide: Fix ide_dma_cancel, Kevin Wolf, 2010/05/28