diff options
Diffstat (limited to 'tools/qemu/patches/0008-VMDK-move-static-cid_update-flag-to-bs-field.patch')
-rw-r--r-- | tools/qemu/patches/0008-VMDK-move-static-cid_update-flag-to-bs-field.patch | 46 |
1 files changed, 46 insertions, 0 deletions
diff --git a/tools/qemu/patches/0008-VMDK-move-static-cid_update-flag-to-bs-field.patch b/tools/qemu/patches/0008-VMDK-move-static-cid_update-flag-to-bs-field.patch new file mode 100644 index 0000000000..90a699d73b --- /dev/null +++ b/tools/qemu/patches/0008-VMDK-move-static-cid_update-flag-to-bs-field.patch @@ -0,0 +1,46 @@ +From 9d8117f00364c12cbd658de903b1ed26a30584e0 Mon Sep 17 00:00:00 2001 +From: Fam Zheng <famcool@gmail.com> +Date: Tue, 12 Jul 2011 19:56:34 +0800 +Subject: [PATCH 08/12] VMDK: move 'static' cid_update flag to bs field + +Cid_update is the flag for updating CID on first write after opening the +image. This should be per image open rather than per program life cycle, +so change it from static var of vmdk_write to a field in BDRVVmdkState. + +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> +--- + block/vmdk.c | 6 +++--- + 1 file changed, 3 insertions(+), 3 deletions(-) + +--- a/block/vmdk.c ++++ b/block/vmdk.c +@@ -82,6 +82,7 @@ typedef struct VmdkExtent { + + typedef struct BDRVVmdkState { + int desc_offset; ++ bool cid_updated; + uint32_t parent_cid; + int num_extents; + /* Extent array with num_extents entries, ascend ordered by address */ +@@ -853,7 +854,6 @@ static int vmdk_write(BlockDriverState * + int n; + int64_t index_in_cluster; + uint64_t cluster_offset; +- static int cid_update = 0; + VmdkMetaData m_data; + + if (sector_num > bs->total_sectors) { +@@ -900,9 +900,9 @@ static int vmdk_write(BlockDriverState * + buf += n * 512; + + // update CID on the first write every time the virtual disk is opened +- if (!cid_update) { ++ if (!s->cid_updated) { + vmdk_write_cid(bs, time(NULL)); +- cid_update++; ++ s->cid_updated = true; + } + } + return 0; |