Commit e3b21ef9 authored by Max Reitz's avatar Max Reitz Committed by Stefan Hajnoczi
Browse files

qcow2: Free allocated L2 cluster on error



If an error occurs in l2_allocate, the allocated (but unused) L2 cluster
should be freed.

Signed-off-by: default avatarMax Reitz <mreitz@redhat.com>
Reviewed-by: default avatarBenoit Canet <benoit@irqsave.net>
Signed-off-by: default avatarStefan Hajnoczi <stefanha@redhat.com>
parent fda74f82
Loading
Loading
Loading
Loading
+4 −0
Original line number Diff line number Diff line
@@ -273,6 +273,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;
}