diff options
Diffstat (limited to 'tools/qemu/patches/0003-VMDK-bugfix-align-offset-to-cluster-in-get_whole_clu.patch')
-rw-r--r-- | tools/qemu/patches/0003-VMDK-bugfix-align-offset-to-cluster-in-get_whole_clu.patch | 46 |
1 files changed, 0 insertions, 46 deletions
diff --git a/tools/qemu/patches/0003-VMDK-bugfix-align-offset-to-cluster-in-get_whole_clu.patch b/tools/qemu/patches/0003-VMDK-bugfix-align-offset-to-cluster-in-get_whole_clu.patch deleted file mode 100644 index 38e6c0ae8f..0000000000 --- a/tools/qemu/patches/0003-VMDK-bugfix-align-offset-to-cluster-in-get_whole_clu.patch +++ /dev/null @@ -1,46 +0,0 @@ -From 66922efc83a670178b208dec2f5123ec85fb6ba3 Mon Sep 17 00:00:00 2001 -From: Fam Zheng <famcool@gmail.com> -Date: Tue, 12 Jul 2011 19:56:29 +0800 -Subject: [PATCH 03/12] VMDK: bugfix, align offset to cluster in - get_whole_cluster - -In get_whole_cluster, the offset is not aligned to cluster when reading -from backing_hd. When the first write to child is not at the cluster -boundary, wrong address data from parent is copied to child. - -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 | 8 +++++--- - 1 file changed, 5 insertions(+), 3 deletions(-) - ---- a/block/vmdk.c -+++ b/block/vmdk.c -@@ -514,21 +514,23 @@ static int get_whole_cluster(BlockDriver - /* 128 sectors * 512 bytes each = grain size 64KB */ - uint8_t whole_grain[extent->cluster_sectors * 512]; - -- // we will be here if it's first write on non-exist grain(cluster). -- // try to read from parent image, if exist -+ /* we will be here if it's first write on non-exist grain(cluster). -+ * try to read from parent image, if exist */ - if (bs->backing_hd) { - int ret; - - if (!vmdk_is_cid_valid(bs)) - return -1; - -+ /* floor offset to cluster */ -+ offset -= offset % (extent->cluster_sectors * 512); - ret = bdrv_read(bs->backing_hd, offset >> 9, whole_grain, - extent->cluster_sectors); - if (ret < 0) { - return -1; - } - -- //Write grain only into the active image -+ /* Write grain only into the active image */ - ret = bdrv_write(extent->file, cluster_offset, whole_grain, - extent->cluster_sectors); - if (ret < 0) { |