Le Wednesday 25 Sep 2013 à 16:37:19 (+0200), Max Reitz a écrit :
> If an error occurs in l2_allocate, the allocated (but unused) L2 cluster
> should be freed.
>
> Signed-off-by: Max Reitz <mre...@redhat.com>
> ---
> block/qcow2-cluster.c | 4 ++++
> 1 file changed, 4 insertions(+)
>
> diff --git a/block/qcow2-cluster.c b/block/qcow2-cluster.c
> index f6d47c9..1c3d3fc 100644
> --- a/block/qcow2-cluster.c
> +++ b/block/qcow2-cluster.c
> @@ -269,6 +269,10 @@ fail:
> qcow2_cache_put(bs, s->l2_table_cache, (void**) table);
> }
> s->l1_table[l1_index] = old_l2_offset;
> + if (l2_offset > 0) {
> + qcow2_free_clusters(bs, l2_offset, s->l2_size * sizeof(uint64_t),
> + QCOW2_DISCARD_ALWAYS);
> + }
> return ret;
> }
>
> --
> 1.8.3.1
>
>
Reviewed-by: Benoit Canet <ben...@irqsave.net>