aboutsummaryrefslogtreecommitdiff
path: root/block
diff options
context:
space:
mode:
authorJeff Cody <jcody@redhat.com>2016-03-22 23:33:40 -0400
committerKevin Wolf <kwolf@redhat.com>2016-04-15 17:22:12 +0200
commitbab246db1dbb37fe55fb84c95ad086f550f443a5 (patch)
tree39d49f756b87557f0137b9364810cbf0a3660b34 /block
parent9bdfb9e8ac9ae3171f0fba4635afda5c90db2a1e (diff)
block/vpc: use current_size field for XenConverter VHD images
XenConverter VHD images are another VHD image where current_size is different from the CHS values in the the format header. Use current_size as the default, by looking at the creator_app signature field. Signed-off-by: Jeff Cody <jcody@redhat.com> Reviewed-by: Stefan Hajnoczi <stefanha@redhat.com> Signed-off-by: Kevin Wolf <kwolf@redhat.com>
Diffstat (limited to 'block')
-rw-r--r--block/vpc.c2
1 files changed, 2 insertions, 0 deletions
diff --git a/block/vpc.c b/block/vpc.c
index 228f2c96e1..c9ebc4af30 100644
--- a/block/vpc.c
+++ b/block/vpc.c
@@ -300,6 +300,7 @@ static int vpc_open(BlockDriverState *bs, QDict *options, int flags,
* 'win ' : current_size Hyper-V
* 'd2v ' : current_size Disk2vhd
* 'tap\0' : current_size XenServer
+ * 'CTXS' : current_size XenConverter
*
* The user can override the table values via drive options, however
* even with an override we will still use current_size for images
@@ -308,6 +309,7 @@ static int vpc_open(BlockDriverState *bs, QDict *options, int flags,
use_chs = (!!strncmp(footer->creator_app, "win ", 4) &&
!!strncmp(footer->creator_app, "qem2", 4) &&
!!strncmp(footer->creator_app, "d2v ", 4) &&
+ !!strncmp(footer->creator_app, "CTXS", 4) &&
!!memcmp(footer->creator_app, "tap", 4)) || s->force_use_chs;
if (!use_chs || bs->total_sectors == VHD_MAX_GEOMETRY || s->force_use_sz) {