All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH] xl - Special case vhd images validation
@ 2011-02-10 17:16 Kamala Narasimhan
  2011-02-10 19:31 ` Ian Jackson
  0 siblings, 1 reply; 5+ messages in thread
From: Kamala Narasimhan @ 2011-02-10 17:16 UTC (permalink / raw)
  To: xen-devel

[-- Attachment #1: Type: text/plain, Size: 428 bytes --]

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.

IanJ - Since we decided to not merge disk changes patch 3-5, we need this.

IanC - This patch has the change you suggested to look for DISK_FORMAT_EMPTY.

Signed-off-by: Kamala Narasimhan <kamala.narasimhan@citrix.com>

Kamala

[-- Attachment #2: xl-validate-vhd --]
[-- Type: text/plain, Size: 1690 bytes --]

diff -r 9e87dfb60bc6 tools/libxl/libxl.c
--- a/tools/libxl/libxl.c	Thu Feb 10 11:49:27 2011 -0500
+++ b/tools/libxl/libxl.c	Thu Feb 10 11:50:25 2011 -0500
@@ -864,18 +864,29 @@ 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)
+    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;
 

[-- Attachment #3: Type: text/plain, Size: 138 bytes --]

_______________________________________________
Xen-devel mailing list
Xen-devel@lists.xensource.com
http://lists.xensource.com/xen-devel

^ permalink raw reply	[flat|nested] 5+ messages in thread

end of thread, other threads:[~2011-02-15 19:23 UTC | newest]

Thread overview: 5+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2011-02-10 17:16 [PATCH] xl - Special case vhd images validation Kamala Narasimhan
2011-02-10 19:31 ` Ian Jackson
2011-02-10 19:55   ` Kamala Narasimhan
2011-02-14 20:34     ` Kamala Narasimhan
2011-02-15 19:23       ` Ian Jackson

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.