958e1b
From a21710237f6c2cce366515fc2dacd4211bc31b7a Mon Sep 17 00:00:00 2001
958e1b
From: Fam Zheng <famz@redhat.com>
958e1b
Date: Mon, 14 Jul 2014 02:05:27 -0500
958e1b
Subject: [CHANGE 22/29] vmdk: Fix format specific information (create type)
958e1b
 for streamOptimized
958e1b
To: rhvirt-patches@redhat.com,
958e1b
    jen@redhat.com
958e1b
958e1b
RH-Author: Fam Zheng <famz@redhat.com>
958e1b
Message-id: <1405303527-10117-1-git-send-email-famz@redhat.com>
958e1b
Patchwork-id: 59872
958e1b
O-Subject: [RHEL-7 qemu-kvm PATCH] vmdk: Fix format specific information (create type) for streamOptimized
958e1b
Bugzilla: 1029271
958e1b
RH-Acked-by: Markus Armbruster <armbru@redhat.com>
958e1b
RH-Acked-by: Kevin Wolf <kwolf@redhat.com>
958e1b
RH-Acked-by: Stefan Hajnoczi <stefanha@redhat.com>
958e1b
958e1b
Bugzilla: https://bugzilla.redhat.com/show_bug.cgi?id=1029271
958e1b
Brew:     http://brewweb.devel.redhat.com/brew/taskinfo?taskID=7695829
958e1b
958e1b
Previously the field is wrong:
958e1b
958e1b
    $ ./qemu-img create -f vmdk -o subformat=streamOptimized /tmp/a.vmdk 1G
958e1b
958e1b
    $ ./qemu-img info /tmp/a.vmdk
958e1b
    image: /tmp/a.vmdk
958e1b
    file format: vmdk
958e1b
    virtual size: 1.0G (1073741824 bytes)
958e1b
    disk size: 12K
958e1b
    Format specific information:
958e1b
        cid: 1390460459
958e1b
        parent cid: 4294967295
958e1b
>>>     create type: monolithicSparse
958e1b
        <snip>
958e1b
958e1b
Signed-off-by: Fam Zheng <famz@redhat.com>
958e1b
Signed-off-by: Kevin Wolf <kwolf@redhat.com>
958e1b
(cherry picked from commit d8a7b061ae01e5692cc994f05ad6480d8c170125)
958e1b
Signed-off-by: Fam Zheng <famz@redhat.com>
958e1b
---
958e1b
 block/vmdk.c | 4 ++++
958e1b
 1 file changed, 4 insertions(+)
958e1b
958e1b
Signed-off-by: jen <jen@redhat.com>
958e1b
---
958e1b
 block/vmdk.c | 4 ++++
958e1b
 1 file changed, 4 insertions(+)
958e1b
958e1b
diff --git a/block/vmdk.c b/block/vmdk.c
958e1b
index a966715..9e4b3b9 100644
958e1b
--- a/block/vmdk.c
958e1b
+++ b/block/vmdk.c
958e1b
@@ -650,6 +650,10 @@ static int vmdk_open_vmdk4(BlockDriverState *bs,
958e1b
     }
958e1b
     extent->compressed =
958e1b
         le16_to_cpu(header.compressAlgorithm) == VMDK4_COMPRESSION_DEFLATE;
958e1b
+    if (extent->compressed) {
958e1b
+        g_free(s->create_type);
958e1b
+        s->create_type = g_strdup("streamOptimized");
958e1b
+    }
958e1b
     extent->has_marker = le32_to_cpu(header.flags) & VMDK4_FLAG_MARKER;
958e1b
     extent->version = le32_to_cpu(header.version);
958e1b
     extent->has_zero_grain = le32_to_cpu(header.flags) & VMDK4_FLAG_ZERO_GRAIN;
958e1b
-- 
958e1b
1.9.3
958e1b