From mboxrd@z Thu Jan 1 00:00:00 1970 From: Kamala Narasimhan Subject: Re: [PATCH] xl - Special case vhd images validation Date: Mon, 14 Feb 2011 15:34:31 -0500 Message-ID: <4D5991D7.9090609@gmail.com> References: <4D541D56.4090109@gmail.com> <19796.15622.618084.147420@mariner.uk.xensource.com> <4D5442B6.2070900@gmail.com> Mime-Version: 1.0 Content-Type: multipart/mixed; boundary="------------090203080002020407070503" Return-path: In-Reply-To: <4D5442B6.2070900@gmail.com> List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , Sender: xen-devel-bounces@lists.xensource.com Errors-To: xen-devel-bounces@lists.xensource.com To: Ian Jackson Cc: "xen-devel@lists.xensource.com" List-Id: xen-devel@lists.xenproject.org This is a multi-part message in MIME format. --------------090203080002020407070503 Content-Type: text/plain; charset=ISO-8859-1 Content-Transfer-Encoding: 7bit Resending this patch as the one I sent earlier won't apply given the changes we just made to "[PATCH 2/5] Xl interface change plus changes to code it impacts". Description - Special case how we validate vhd image files. Without this patch when tap:aio:vhd prefixed image files are specified in the config file, disk validation and thus vm creation will fail. Signed-off-by: Kamala Narasimhan Kamala --------------090203080002020407070503 Content-Type: text/plain; name="xl-validate-vhd" Content-Transfer-Encoding: 7bit Content-Disposition: inline; filename="xl-validate-vhd" diff -r a60ad215181c tools/libxl/libxl.c --- a/tools/libxl/libxl.c Mon Feb 14 15:15:19 2011 -0500 +++ b/tools/libxl/libxl.c Mon Feb 14 15:18:33 2011 -0500 @@ -863,19 +863,30 @@ int libxl_vncviewer_exec(libxl_ctx *ctx, /******************************************************************************/ -static int validate_virtual_disk(libxl_ctx *ctx, char *file_name, - libxl_disk_backend backend_type, libxl_disk_format format) +static int validate_virtual_disk(libxl_ctx *ctx, char *file_name, + libxl_device_disk *disk) { struct stat stat_buf; + char *delimiter; - if ((file_name[0] == '\0') && (format == DISK_FORMAT_EMPTY)) + if (disk->format == DISK_FORMAT_EMPTY) return 0; + + if (disk->format == DISK_FORMAT_RAW) { + delimiter = strchr(file_name, ':'); + if (delimiter) { + if (!strncmp(file_name, "vhd:", sizeof("vhd:")-1)) { + disk->format = DISK_FORMAT_VHD; + file_name = ++delimiter; + } + } + } if ( stat(file_name, &stat_buf) != 0 ) { LIBXL__LOG_ERRNO(ctx, LIBXL__LOG_ERROR, "failed to stat %s", file_name); return ERROR_INVAL; } - if (backend_type == DISK_BACKEND_PHY) { + if (disk->backend == DISK_BACKEND_PHY) { if ( !(S_ISBLK(stat_buf.st_mode)) ) { LIBXL__LOG(ctx, LIBXL__LOG_ERROR, "Virtual disk %s is not a block device!\n", file_name); @@ -899,8 +910,7 @@ int libxl_device_disk_add(libxl_ctx *ctx libxl__device device; int major, minor, rc; - rc = validate_virtual_disk(ctx, disk->pdev_path, disk->backend, - disk->format); + rc = validate_virtual_disk(ctx, disk->pdev_path, disk); if (rc) return rc; --------------090203080002020407070503 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 --------------090203080002020407070503--