From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from eggs.gnu.org ([2001:4830:134:3::10]:36110) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1ai2q5-0007q4-7m for qemu-devel@nongnu.org; Mon, 21 Mar 2016 12:38:01 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1ai2q1-0004Yl-CL for qemu-devel@nongnu.org; Mon, 21 Mar 2016 12:37:57 -0400 Date: Mon, 21 Mar 2016 12:37:45 -0400 From: Jeff Cody Message-ID: <20160321163745.GA21315@localhost.localdomain> References: <1458416563-4381-1-git-send-email-stefanha@redhat.com> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <1458416563-4381-1-git-send-email-stefanha@redhat.com> Subject: Re: [Qemu-devel] [Qemu-block] [PATCH] vpc: use current_size field for XenServer VHD images List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: Stefan Hajnoczi Cc: grantwwu@gmail.com, sbaugh@catern.com, Kevin Wolf , qemu-devel@nongnu.org, qemu-block@nongnu.org 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 > Reported-by: Spencer Baugh > Signed-off-by: Stefan Hajnoczi > --- > 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 > >