Commit 49140a7748a6e8095cd93f2f58e33a9a8c78167b
1 parent
117b3ae6
Fix VMDK 2GB bug, by Filip Navara.
git-svn-id: svn://svn.savannah.nongnu.org/qemu/trunk@3158 c046a42c-6fe2-441c-8c8c-71466251a162
Showing
1 changed file
with
1 additions
and
10 deletions
block-vmdk.c
| ... | ... | @@ -520,7 +520,6 @@ static uint64_t get_cluster_offset(BlockDriverState *bs, VmdkMetaData *m_data, |
| 520 | 520 | int min_index, i, j; |
| 521 | 521 | uint32_t min_count, *l2_table, tmp = 0; |
| 522 | 522 | uint64_t cluster_offset; |
| 523 | - int status; | |
| 524 | 523 | |
| 525 | 524 | if (m_data) |
| 526 | 525 | m_data->valid = 0; |
| ... | ... | @@ -564,19 +563,11 @@ static uint64_t get_cluster_offset(BlockDriverState *bs, VmdkMetaData *m_data, |
| 564 | 563 | cluster_offset = le32_to_cpu(l2_table[l2_index]); |
| 565 | 564 | |
| 566 | 565 | if (!cluster_offset) { |
| 567 | - struct stat file_buf; | |
| 568 | - | |
| 569 | 566 | if (!allocate) |
| 570 | 567 | return 0; |
| 571 | 568 | // Avoid the L2 tables update for the images that have snapshots. |
| 572 | 569 | if (!s->is_parent) { |
| 573 | - status = stat(s->hd->filename, &file_buf); | |
| 574 | - if (status == -1) { | |
| 575 | - fprintf(stderr, "(VMDK) Fail file stat: filename =%s size=0x%llx errno=%s\n", | |
| 576 | - s->hd->filename, (uint64_t)file_buf.st_size, strerror(errno)); | |
| 577 | - return 0; | |
| 578 | - } | |
| 579 | - cluster_offset = file_buf.st_size; | |
| 570 | + cluster_offset = bdrv_getlength(s->hd); | |
| 580 | 571 | bdrv_truncate(s->hd, cluster_offset + (s->cluster_sectors << 9)); |
| 581 | 572 | |
| 582 | 573 | cluster_offset >>= 9; | ... | ... |