|
|
958e1b |
From bacd188daed3fa0558836cbb6f7175155355c3d2 Mon Sep 17 00:00:00 2001
|
|
|
958e1b |
Message-Id: <bacd188daed3fa0558836cbb6f7175155355c3d2.1418766606.git.jen@redhat.com>
|
|
|
958e1b |
In-Reply-To: <6f81b4847eb68ebdf54a8f1a771e19d112d74152.1418766606.git.jen@redhat.com>
|
|
|
958e1b |
References: <6f81b4847eb68ebdf54a8f1a771e19d112d74152.1418766606.git.jen@redhat.com>
|
|
|
958e1b |
From: Fam Zheng <famz@redhat.com>
|
|
|
958e1b |
Date: Thu, 4 Dec 2014 00:05:00 -0600
|
|
|
958e1b |
Subject: [CHANGE 06/31] vmdk: Fix big flat extent IO
|
|
|
958e1b |
To: rhvirt-patches@redhat.com,
|
|
|
958e1b |
jen@redhat.com
|
|
|
958e1b |
|
|
|
958e1b |
RH-Author: Fam Zheng <famz@redhat.com>
|
|
|
958e1b |
Message-id: <1417651524-18041-7-git-send-email-famz@redhat.com>
|
|
|
958e1b |
Patchwork-id: 62679
|
|
|
958e1b |
O-Subject: [RHEL-7.1 qemu-kvm PATCH v5 06/30] vmdk: Fix big flat extent IO
|
|
|
958e1b |
Bugzilla: 1134241
|
|
|
958e1b |
RH-Acked-by: Jeffrey Cody <jcody@redhat.com>
|
|
|
958e1b |
RH-Acked-by: Markus Armbruster <armbru@redhat.com>
|
|
|
958e1b |
RH-Acked-by: Max Reitz <mreitz@redhat.com>
|
|
|
958e1b |
|
|
|
958e1b |
Local variable "n" as int64_t avoids overflow with large sector number
|
|
|
958e1b |
calculation. See test case change for failure case.
|
|
|
958e1b |
|
|
|
958e1b |
Signed-off-by: Fam Zheng <famz@redhat.com>
|
|
|
958e1b |
Signed-off-by: Kevin Wolf <kwolf@redhat.com>
|
|
|
958e1b |
(cherry picked from commit 585ea0c841df47c1542d33e17c5c6d532316ef74)
|
|
|
958e1b |
Signed-off-by: Fam Zheng <famz@redhat.com>
|
|
|
958e1b |
Signed-off-by: Jeff E. Nelson <jen@redhat.com>
|
|
|
958e1b |
---
|
|
|
958e1b |
block/vmdk.c | 4 +--
|
|
|
958e1b |
tests/qemu-iotests/059 | 7 +++++
|
|
|
958e1b |
tests/qemu-iotests/059.out | 74 ++++++++++++++++++++++++++++++++++++++++++++++
|
|
|
958e1b |
3 files changed, 83 insertions(+), 2 deletions(-)
|
|
|
958e1b |
|
|
|
958e1b |
diff --git a/block/vmdk.c b/block/vmdk.c
|
|
|
958e1b |
index d77eb37..4226baa 100644
|
|
|
958e1b |
--- a/block/vmdk.c
|
|
|
958e1b |
+++ b/block/vmdk.c
|
|
|
958e1b |
@@ -1344,8 +1344,8 @@ static int vmdk_write(BlockDriverState *bs, int64_t sector_num,
|
|
|
958e1b |
{
|
|
|
958e1b |
BDRVVmdkState *s = bs->opaque;
|
|
|
958e1b |
VmdkExtent *extent = NULL;
|
|
|
958e1b |
- int n, ret;
|
|
|
958e1b |
- int64_t index_in_cluster;
|
|
|
958e1b |
+ int ret;
|
|
|
958e1b |
+ int64_t index_in_cluster, n;
|
|
|
958e1b |
uint64_t extent_begin_sector, extent_relative_sector_num;
|
|
|
958e1b |
uint64_t cluster_offset;
|
|
|
958e1b |
VmdkMetaData m_data;
|
|
|
958e1b |
diff --git a/tests/qemu-iotests/059 b/tests/qemu-iotests/059
|
|
|
958e1b |
index 9ef848b..dde4a59 100755
|
|
|
958e1b |
--- a/tests/qemu-iotests/059
|
|
|
958e1b |
+++ b/tests/qemu-iotests/059
|
|
|
958e1b |
@@ -102,6 +102,13 @@ echo "=== Testing version 3 ==="
|
|
|
958e1b |
_use_sample_img iotest-version3.vmdk.bz2
|
|
|
958e1b |
_img_info
|
|
|
958e1b |
|
|
|
958e1b |
+echo
|
|
|
958e1b |
+echo "=== Testing 4TB monolithicFlat creation and IO ==="
|
|
|
958e1b |
+IMGOPTS="subformat=monolithicFlat" _make_test_img 4T
|
|
|
958e1b |
+_img_info
|
|
|
958e1b |
+$QEMU_IO -c "write -P 0xa 900G 512" "$TEST_IMG" | _filter_qemu_io
|
|
|
958e1b |
+$QEMU_IO -c "read -v 900G 1024" "$TEST_IMG" | _filter_qemu_io
|
|
|
958e1b |
+
|
|
|
958e1b |
# success, all done
|
|
|
958e1b |
echo "*** done"
|
|
|
958e1b |
rm -f $seq.full
|
|
|
958e1b |
diff --git a/tests/qemu-iotests/059.out b/tests/qemu-iotests/059.out
|
|
|
958e1b |
index f161651..75d9858 100644
|
|
|
958e1b |
--- a/tests/qemu-iotests/059.out
|
|
|
958e1b |
+++ b/tests/qemu-iotests/059.out
|
|
|
958e1b |
@@ -2047,4 +2047,78 @@ RW 12582912 VMFS "dummy.IMGFMT" 1
|
|
|
958e1b |
image: TEST_DIR/iotest-version3.IMGFMT
|
|
|
958e1b |
file format: IMGFMT
|
|
|
958e1b |
virtual size: 1.0G (1073741824 bytes)
|
|
|
958e1b |
+
|
|
|
958e1b |
+=== Testing 4TB monolithicFlat creation and IO ===
|
|
|
958e1b |
+Formatting 'TEST_DIR/iotest-version3.IMGFMT', fmt=IMGFMT size=4398046511104
|
|
|
958e1b |
+image: TEST_DIR/iotest-version3.IMGFMT
|
|
|
958e1b |
+file format: IMGFMT
|
|
|
958e1b |
+virtual size: 4.0T (4398046511104 bytes)
|
|
|
958e1b |
+wrote 512/512 bytes at offset 966367641600
|
|
|
958e1b |
+512 bytes, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
|
|
|
958e1b |
+e100000000: 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a ................
|
|
|
958e1b |
+e100000010: 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a ................
|
|
|
958e1b |
+e100000020: 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a ................
|
|
|
958e1b |
+e100000030: 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a ................
|
|
|
958e1b |
+e100000040: 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a ................
|
|
|
958e1b |
+e100000050: 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a ................
|
|
|
958e1b |
+e100000060: 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a ................
|
|
|
958e1b |
+e100000070: 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a ................
|
|
|
958e1b |
+e100000080: 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a ................
|
|
|
958e1b |
+e100000090: 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a ................
|
|
|
958e1b |
+e1000000a0: 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a ................
|
|
|
958e1b |
+e1000000b0: 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a ................
|
|
|
958e1b |
+e1000000c0: 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a ................
|
|
|
958e1b |
+e1000000d0: 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a ................
|
|
|
958e1b |
+e1000000e0: 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a ................
|
|
|
958e1b |
+e1000000f0: 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a ................
|
|
|
958e1b |
+e100000100: 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a ................
|
|
|
958e1b |
+e100000110: 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a ................
|
|
|
958e1b |
+e100000120: 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a ................
|
|
|
958e1b |
+e100000130: 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a ................
|
|
|
958e1b |
+e100000140: 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a ................
|
|
|
958e1b |
+e100000150: 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a ................
|
|
|
958e1b |
+e100000160: 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a ................
|
|
|
958e1b |
+e100000170: 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a ................
|
|
|
958e1b |
+e100000180: 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a ................
|
|
|
958e1b |
+e100000190: 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a ................
|
|
|
958e1b |
+e1000001a0: 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a ................
|
|
|
958e1b |
+e1000001b0: 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a ................
|
|
|
958e1b |
+e1000001c0: 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a ................
|
|
|
958e1b |
+e1000001d0: 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a ................
|
|
|
958e1b |
+e1000001e0: 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a ................
|
|
|
958e1b |
+e1000001f0: 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a ................
|
|
|
958e1b |
+e100000200: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
|
|
|
958e1b |
+e100000210: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
|
|
|
958e1b |
+e100000220: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
|
|
|
958e1b |
+e100000230: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
|
|
|
958e1b |
+e100000240: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
|
|
|
958e1b |
+e100000250: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
|
|
|
958e1b |
+e100000260: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
|
|
|
958e1b |
+e100000270: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
|
|
|
958e1b |
+e100000280: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
|
|
|
958e1b |
+e100000290: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
|
|
|
958e1b |
+e1000002a0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
|
|
|
958e1b |
+e1000002b0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
|
|
|
958e1b |
+e1000002c0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
|
|
|
958e1b |
+e1000002d0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
|
|
|
958e1b |
+e1000002e0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
|
|
|
958e1b |
+e1000002f0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
|
|
|
958e1b |
+e100000300: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
|
|
|
958e1b |
+e100000310: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
|
|
|
958e1b |
+e100000320: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
|
|
|
958e1b |
+e100000330: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
|
|
|
958e1b |
+e100000340: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
|
|
|
958e1b |
+e100000350: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
|
|
|
958e1b |
+e100000360: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
|
|
|
958e1b |
+e100000370: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
|
|
|
958e1b |
+e100000380: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
|
|
|
958e1b |
+e100000390: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
|
|
|
958e1b |
+e1000003a0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
|
|
|
958e1b |
+e1000003b0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
|
|
|
958e1b |
+e1000003c0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
|
|
|
958e1b |
+e1000003d0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
|
|
|
958e1b |
+e1000003e0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
|
|
|
958e1b |
+e1000003f0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
|
|
|
958e1b |
+read 1024/1024 bytes at offset 966367641600
|
|
|
958e1b |
+1 KiB, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
|
|
|
958e1b |
*** done
|
|
|
958e1b |
--
|
|
|
958e1b |
2.1.0
|
|
|
958e1b |
|