Revision 7267c094 block/qcow2-cluster.c
b/block/qcow2-cluster.c | ||
---|---|---|
57 | 57 |
#endif |
58 | 58 |
|
59 | 59 |
new_l1_size2 = sizeof(uint64_t) * new_l1_size; |
60 |
new_l1_table = qemu_mallocz(align_offset(new_l1_size2, 512));
|
|
60 |
new_l1_table = g_malloc0(align_offset(new_l1_size2, 512));
|
|
61 | 61 |
memcpy(new_l1_table, s->l1_table, s->l1_size * sizeof(uint64_t)); |
62 | 62 |
|
63 | 63 |
/* write new table (align to cluster) */ |
64 | 64 |
BLKDBG_EVENT(bs->file, BLKDBG_L1_GROW_ALLOC_TABLE); |
65 | 65 |
new_l1_table_offset = qcow2_alloc_clusters(bs, new_l1_size2); |
66 | 66 |
if (new_l1_table_offset < 0) { |
67 |
qemu_free(new_l1_table);
|
|
67 |
g_free(new_l1_table);
|
|
68 | 68 |
return new_l1_table_offset; |
69 | 69 |
} |
70 | 70 |
|
... | ... | |
90 | 90 |
if (ret < 0) { |
91 | 91 |
goto fail; |
92 | 92 |
} |
93 |
qemu_free(s->l1_table);
|
|
93 |
g_free(s->l1_table);
|
|
94 | 94 |
qcow2_free_clusters(bs, s->l1_table_offset, s->l1_size * sizeof(uint64_t)); |
95 | 95 |
s->l1_table_offset = new_l1_table_offset; |
96 | 96 |
s->l1_table = new_l1_table; |
97 | 97 |
s->l1_size = new_l1_size; |
98 | 98 |
return 0; |
99 | 99 |
fail: |
100 |
qemu_free(new_l1_table);
|
|
100 |
g_free(new_l1_table);
|
|
101 | 101 |
qcow2_free_clusters(bs, new_l1_table_offset, new_l1_size2); |
102 | 102 |
return ret; |
103 | 103 |
} |
... | ... | |
612 | 612 |
if (m->nb_clusters == 0) |
613 | 613 |
return 0; |
614 | 614 |
|
615 |
old_cluster = qemu_malloc(m->nb_clusters * sizeof(uint64_t));
|
|
615 |
old_cluster = g_malloc(m->nb_clusters * sizeof(uint64_t));
|
|
616 | 616 |
|
617 | 617 |
/* copy content of unmodified sectors */ |
618 | 618 |
start_sect = (m->offset & ~(s->cluster_size - 1)) >> 9; |
... | ... | |
683 | 683 |
|
684 | 684 |
ret = 0; |
685 | 685 |
err: |
686 |
qemu_free(old_cluster);
|
|
686 |
g_free(old_cluster);
|
|
687 | 687 |
return ret; |
688 | 688 |
} |
689 | 689 |
|
Also available in: Unified diff