From 23ce8d7b1825ef048711fd0f47a41b001642aeef Mon Sep 17 00:00:00 2001 Message-Id: <23ce8d7b1825ef048711fd0f47a41b001642aeef.1369658547.git.minovotn@redhat.com> In-Reply-To: <07146f8b79923c529fd93fa528e6fcbd6f571a02.1369658547.git.minovotn@redhat.com> References: <07146f8b79923c529fd93fa528e6fcbd6f571a02.1369658547.git.minovotn@redhat.com> From: Fam Zheng Date: Mon, 20 May 2013 03:36:25 +0200 Subject: [PATCH 10/47] VMDK: move 'static' cid_update flag to bs field RH-Author: Fam Zheng Message-id: <1369021022-22728-11-git-send-email-famz@redhat.com> Patchwork-id: 51446 O-Subject: [PATCH RHEL-6.5 qemu-kvm v3 10/47] VMDK: move 'static' cid_update flag to bs field Bugzilla: 960685 RH-Acked-by: Stefan Hajnoczi RH-Acked-by: Jeffrey Cody RH-Acked-by: Kevin Wolf From: Fam Zheng 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 Reviewed-by: Stefan Hajnoczi Signed-off-by: Kevin Wolf (cherry picked from commit 69b4d86d9f7feb6083cedb0c5fb65fdc30daf623) Signed-off-by: Fam Zheng --- block/vmdk.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) Signed-off-by: Michal Novotny --- block/vmdk.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/block/vmdk.c b/block/vmdk.c index 7f6abc1..97e264b 100644 --- a/block/vmdk.c +++ b/block/vmdk.c @@ -83,6 +83,7 @@ typedef struct VmdkExtent { typedef struct BDRVVmdkState { CoMutex lock; int desc_offset; + bool cid_updated; uint32_t parent_cid; int num_extents; /* Extent array with num_extents entries, ascend ordered by address */ @@ -869,7 +870,6 @@ static int vmdk_write(BlockDriverState *bs, int64_t sector_num, 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) { @@ -916,9 +916,9 @@ static int vmdk_write(BlockDriverState *bs, int64_t sector_num, 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; -- 1.7.11.7