If writing the L1 table to disk failed, we need to restore its old content in memory to avoid inconsistencies.
Reported-by: Juan Quintela <quint...@redhat.com> Signed-off-by: Kevin Wolf <kw...@redhat.com> --- block/qcow2-cluster.c | 1 + 1 files changed, 1 insertions(+), 0 deletions(-) diff --git a/block/qcow2-cluster.c b/block/qcow2-cluster.c index 03a9f25..5760ad6 100644 --- a/block/qcow2-cluster.c +++ b/block/qcow2-cluster.c @@ -285,6 +285,7 @@ static int l2_allocate(BlockDriverState *bs, int l1_index, uint64_t **table) return 0; fail: + s->l1_table[l1_index] = old_l2_offset; qcow2_l2_cache_reset(bs); return ret; } -- 1.6.6.1