qemu-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Qemu-devel] [Qemu-block] [PATCH] vpc: use current_size field for Xe


From: Jeff Cody
Subject: Re: [Qemu-devel] [Qemu-block] [PATCH] vpc: use current_size field for XenServer VHD images
Date: Mon, 21 Mar 2016 12:37:45 -0400
User-agent: Mutt/1.5.21 (2010-09-15)

On Sat, Mar 19, 2016 at 07:42:43PM +0000, Stefan Hajnoczi wrote:
> The vpc driver has two methods of determining virtual disk size.  The
> correct one to use depends on the software that generated the image
> file.  Add the XenServer creator_app signature so that image size is
> correctly detected for those images.
> 
> Reported-by: Grant Wu <address@hidden>
> Reported-by: Spencer Baugh <address@hidden>
> Signed-off-by: Stefan Hajnoczi <address@hidden>
> ---
>  block/vpc.c | 4 +++-
>  1 file changed, 3 insertions(+), 1 deletion(-)
> 
> diff --git a/block/vpc.c b/block/vpc.c
> index 8435205..7517f75 100644
> --- a/block/vpc.c
> +++ b/block/vpc.c
> @@ -298,6 +298,7 @@ static int vpc_open(BlockDriverState *bs, QDict *options, 
> int flags,
>       *      'qem2'  :  current_size     QEMU (uses current_size)
>       *      'win '  :  current_size     Hyper-V
>       *      'd2v '  :  current_size     Disk2vhd
> +     *      'tap\0' :  current_size     XenServer

I just tried out XenConverter, and it set the creator_app field to
"CTXS".  We should probably add a check for that, too.

>       *
>       *  The user can override the table values via drive options, however
>       *  even with an override we will still use current_size for images
> @@ -305,7 +306,8 @@ 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)) || 
> s->force_use_chs;
> +               !!strncmp(footer->creator_app, "d2v ", 4) &&
> +               !!memcmp(footer->creator_app, "tap", 4)) || s->force_use_chs;
>  
>      if (!use_chs || bs->total_sectors == VHD_MAX_GEOMETRY || 
> s->force_use_sz) {
>          bs->total_sectors = be64_to_cpu(footer->current_size) /
> -- 
> 2.5.0
> 
> 



reply via email to

[Prev in Thread] Current Thread [Next in Thread]