From mboxrd@z Thu Jan 1 00:00:00 1970 From: Pat Campbell Subject: [PATCH][ioemu] strip tap subtype prefix from image name (restyled) Date: Wed, 30 Jan 2008 07:14:24 -0700 Message-ID: <47A08640.9030504@novell.com> Mime-Version: 1.0 Content-Type: multipart/mixed; boundary="------------080409050004040706020402" Return-path: List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , Sender: xen-devel-bounces@lists.xensource.com Errors-To: xen-devel-bounces@lists.xensource.com To: "xen-devel@lists.xensource.com" List-Id: xen-devel@lists.xenproject.org This is a multi-part message in MIME format. --------------080409050004040706020402 Content-Type: text/plain; charset=ISO-8859-1 Content-Transfer-Encoding: 7bit More readable version Currently I am not able to mount or boot from an HVM CDROM when it is configured for 'tap:aio' instead of 'file'. disk=[ 'tap:aio:/var/lib/xen/images/sles10-sp2-fv/disk0,hda,w', ' tap:aio:/home/iso/sles/SLES10.iso,hdc:cdrom,r', ] With the attached patch I am able to boot from the CDROM and or mount it. Patch changes xenstore.c:xenstore_process_event() to strip the tap subtype prefix from the image name. Please apply to xen-unstable tip. Signed-off-by: Pat Campbell --------------080409050004040706020402 Content-Type: text/x-patch; name="xen-blktab-subtype-strip.patch" Content-Transfer-Encoding: 7bit Content-Disposition: inline; filename="xen-blktab-subtype-strip.patch" diff -r 1c826ea72a80 tools/ioemu/xenstore.c --- a/tools/ioemu/xenstore.c Wed Jan 23 15:42:52 2008 +0000 +++ b/tools/ioemu/xenstore.c Wed Jan 30 07:06:12 2008 -0700 @@ -418,7 +418,7 @@ void xenstore_record_dm_state(char *stat void xenstore_process_event(void *opaque) { - char **vec, *image = NULL; + char **vec, *offset, *bpath = NULL, *buf = NULL, *drv = NULL, *image = NULL; unsigned int len, num, hd_index; vec = xs_read_watch(xsh, &num); @@ -440,8 +440,28 @@ void xenstore_process_event(void *opaque goto out; hd_index = vec[XS_WATCH_TOKEN][2] - 'a'; image = xs_read(xsh, XBT_NULL, vec[XS_WATCH_PATH], &len); - if (image == NULL || !strcmp(image, bs_table[hd_index]->filename)) - goto out; /* gone or identical */ + if (image == NULL) + goto out; /* gone */ + + /* Strip off blktap sub-type prefix */ + bpath = strdup(vec[XS_WATCH_PATH]); + if (bpath) + goto out; + if ((offset = strrchr(bpath, '/')) != NULL) + *offset = '\0'; + if (pasprintf(&buf, "%s/type", bpath) == -1) + goto out; + drv = xs_read(xsh, XBT_NULL, buf, &len); + if (drv) { + if (!strcmp(drv, "tap")) { + offset = strchr(image, ':'); + if (offset) + memmove(image, offset+1, strlen(offset+1)+1 ); + } + } + + if (!strcmp(image, bs_table[hd_index]->filename)) + goto out; /* identical */ do_eject(0, vec[XS_WATCH_TOKEN]); bs_table[hd_index]->filename[0] = 0; @@ -456,6 +476,9 @@ void xenstore_process_event(void *opaque } out: + free(drv); + free(buf); + free(bpath); free(image); free(vec); } --------------080409050004040706020402 Content-Type: text/plain; charset="us-ascii" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit Content-Disposition: inline _______________________________________________ Xen-devel mailing list Xen-devel@lists.xensource.com http://lists.xensource.com/xen-devel --------------080409050004040706020402--