Side note:  After manually patching tap\0 to qem2, Spencer and I were still
unable to get qemu-img info working with the image.  Unsure if this is
related to the patch or not.

Thanks,

Grant Wu
grant...@gmail.com

On Sat, Mar 19, 2016 at 3:42 PM, Stefan Hajnoczi <stefa...@redhat.com>
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 <grant...@gmail.com>
> Reported-by: Spencer Baugh <sba...@catern.com>
> Signed-off-by: Stefan Hajnoczi <stefa...@redhat.com>
> ---
>  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
>       *
>       *  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