summary refs log tree commit diff stats
diff options
context:
space:
mode:
authorFam Zheng <famcool@gmail.com>2011-08-12 23:19:27 +0800
committerKevin Wolf <kwolf@redhat.com>2011-09-06 12:20:43 +0200
commit6398de5160e3271b720190b7d6801aecffc91978 (patch)
tree1767b0b447c01e681349a5b971a709cc4179f1cc
parentba5b7ad4495a9788d0af67133186bbc7a553008f (diff)
downloadfocaccia-qemu-6398de5160e3271b720190b7d6801aecffc91978.tar.gz
focaccia-qemu-6398de5160e3271b720190b7d6801aecffc91978.zip
VMDK: enable twoGbMaxExtentFlat
Enable the createType 'twoGbMaxExtentFlat'. The supporting code is
already in.

Signed-off-by: Fam Zheng <famcool@gmail.com>
Reviewed-by: Stefan Hajnoczi <stefanha@linux.vnet.ibm.com>
Signed-off-by: Kevin Wolf <kwolf@redhat.com>
-rw-r--r--block/vmdk.c4
1 files changed, 3 insertions, 1 deletions
diff --git a/block/vmdk.c b/block/vmdk.c
index 5f673e9e25..1e9e8d0534 100644
--- a/block/vmdk.c
+++ b/block/vmdk.c
@@ -551,7 +551,8 @@ static int vmdk_open_desc_file(BlockDriverState *bs, int flags)
     if (vmdk_parse_description(buf, "createType", ct, sizeof(ct))) {
         return -EINVAL;
     }
-    if (strcmp(ct, "monolithicFlat")) {
+    if (strcmp(ct, "monolithicFlat") &&
+        strcmp(ct, "twoGbMaxExtentFlat")) {
         fprintf(stderr,
                 "VMDK: Not supported image type \"%s\""".\n", ct);
         return -ENOTSUP;
@@ -672,6 +673,7 @@ static int get_cluster_offset(BlockDriverState *bs,
         return 0;
     }
 
+    offset -= (extent->end_sector - extent->sectors) * SECTOR_SIZE;
     l1_index = (offset >> 9) / extent->l1_entry_sectors;
     if (l1_index >= extent->l1_size) {
         return -1;