summaryrefslogtreecommitdiffstats
path: root/block
diff options
context:
space:
mode:
authorSam Eiderman2019-03-14 15:14:37 +0100
committerKevin Wolf2019-03-19 15:49:29 +0100
commitb69864e5a8c7b762e94d1bfd170b8774b28ab993 (patch)
treea075994e4d0f9bf03ac791735e21cac95b841b4e /block
parentqapi: fix block-latency-histogram-set description and examples (diff)
downloadqemu-b69864e5a8c7b762e94d1bfd170b8774b28ab993.tar.gz
qemu-b69864e5a8c7b762e94d1bfd170b8774b28ab993.tar.xz
qemu-b69864e5a8c7b762e94d1bfd170b8774b28ab993.zip
vmdk: Support version=3 in VMDK descriptor files
Commit 509d39aa22909c0ed1aabf896865f19c81fb38a1 added support for read only VMDKs of version 3. This commit fixes the probe function to correctly handle descriptors of version 3. This commit has two effects: 1. We no longer need to supply '-f vmdk' when pointing to descriptor files of version 3 in qemu/qemu-img command line arguments. 2. This fixes the scenario where a VMDK points to a parent version 3 descriptor file which is being probed as "raw" instead of "vmdk". Reviewed-by: Arbel Moshe <arbel.moshe@oracle.com> Reviewed-by: Mark Kanda <mark.kanda@oracle.com> Signed-off-by: Shmuel Eiderman <shmuel.eiderman@oracle.com> Signed-off-by: Kevin Wolf <kwolf@redhat.com>
Diffstat (limited to 'block')
-rw-r--r--block/vmdk.c6
1 files changed, 4 insertions, 2 deletions
diff --git a/block/vmdk.c b/block/vmdk.c
index d8c0c50390..8dec6ef767 100644
--- a/block/vmdk.c
+++ b/block/vmdk.c
@@ -195,13 +195,15 @@ static int vmdk_probe(const uint8_t *buf, int buf_size, const char *filename)
}
if (end - p >= strlen("version=X\n")) {
if (strncmp("version=1\n", p, strlen("version=1\n")) == 0 ||
- strncmp("version=2\n", p, strlen("version=2\n")) == 0) {
+ strncmp("version=2\n", p, strlen("version=2\n")) == 0 ||
+ strncmp("version=3\n", p, strlen("version=3\n")) == 0) {
return 100;
}
}
if (end - p >= strlen("version=X\r\n")) {
if (strncmp("version=1\r\n", p, strlen("version=1\r\n")) == 0 ||
- strncmp("version=2\r\n", p, strlen("version=2\r\n")) == 0) {
+ strncmp("version=2\r\n", p, strlen("version=2\r\n")) == 0 ||
+ strncmp("version=3\r\n", p, strlen("version=3\r\n")) == 0) {
return 100;
}
}