WARNING - OLD ARCHIVES

This is an archived copy of the Xen.org mailing list, which we have preserved to ensure that existing links to archives are not broken. The live archive, which contains the latest emails, can be found at http://lists.xen.org/
   
 
 
Xen 
 
Home Products Support Community News
 
   
 

xen-changelog

[Xen-changelog] [xen-unstable] libxl: convert an empty tap disk into a q

To: xen-changelog@xxxxxxxxxxxxxxxxxxx
Subject: [Xen-changelog] [xen-unstable] libxl: convert an empty tap disk into a qdisk
From: Xen patchbot-unstable <patchbot@xxxxxxx>
Date: Sat, 09 Apr 2011 09:20:27 +0100
Delivery-date: Sat, 09 Apr 2011 01:26:53 -0700
Envelope-to: www-data@xxxxxxxxxxxxxxxxxxx
List-help: <mailto:xen-changelog-request@lists.xensource.com?subject=help>
List-id: BK change log <xen-changelog.lists.xensource.com>
List-post: <mailto:xen-changelog@lists.xensource.com>
List-subscribe: <http://lists.xensource.com/mailman/listinfo/xen-changelog>, <mailto:xen-changelog-request@lists.xensource.com?subject=subscribe>
List-unsubscribe: <http://lists.xensource.com/mailman/listinfo/xen-changelog>, <mailto:xen-changelog-request@lists.xensource.com?subject=unsubscribe>
Reply-to: xen-devel@xxxxxxxxxxxxxxxxxxx
Sender: xen-changelog-bounces@xxxxxxxxxxxxxxxxxxx
# HG changeset patch
# User Ian Campbell <ian.campbell@xxxxxxxxxx>
# Date 1302277139 -3600
# Node ID d9d8e0ceaf46a43bf149d50295c51ad40a58ce7e
# Parent  67b8c2a99f4cce523905cea52cd48ae02421fa27
libxl: convert an empty tap disk into a qdisk

I'm not sure that empty disks which are is_cdrom are especially valid,
or that a cdrom can ever be handled by tapdisk anyway but try to do
something sane since it seems that xl's parse_disk_config() routine
could potentially generate such a configuration (although whether from
a valid input string or not I'm not sure).

Signed-off-by: Ian Campbell <ian.campbell@xxxxxxxxxx>
Committed-by: Ian Jackson <ian.jackson@xxxxxxxxxxxxx>
---


diff -r 67b8c2a99f4c -r d9d8e0ceaf46 tools/libxl/libxl.c
--- a/tools/libxl/libxl.c       Fri Apr 08 16:38:36 2011 +0100
+++ b/tools/libxl/libxl.c       Fri Apr 08 16:38:59 2011 +0100
@@ -983,6 +983,14 @@
     if (disk->backend == DISK_BACKEND_TAP && !libxl__blktap_enabled(&gc))
         disk->backend = DISK_BACKEND_QDISK;
 
+    /*
+     * blktap cannot handle empty disks (aka cdroms). Fall back to
+     * qdisk because qemu-xen creates the disk based on the xenstore
+     * entries.
+     */
+    if (disk->backend == DISK_BACKEND_TAP && disk->format == DISK_FORMAT_EMPTY)
+        disk->backend == DISK_BACKEND_QDISK;
+
     switch (disk->backend) {
         case DISK_BACKEND_PHY: 
             libxl__device_physdisk_major_minor(disk->pdev_path, &major, 
&minor);
@@ -995,7 +1003,7 @@
             device.backend_kind = DEVICE_VBD;
             break;
         case DISK_BACKEND_TAP:
-            if (disk->format != DISK_FORMAT_EMPTY) {
+            {
                 const char *dev = libxl__blktap_devpath(&gc,
                                                disk->pdev_path, disk->format);
                 if (!dev) {
@@ -1003,8 +1011,8 @@
                     goto out_free;
                 }
                 flexarray_append(back, "tapdisk-params");
-                flexarray_append(back, libxl__sprintf(&gc, "%s:%s", 
-                    libxl__device_disk_string_of_format(disk->format), 
+                flexarray_append(back, libxl__sprintf(&gc, "%s:%s",
+                    libxl__device_disk_string_of_format(disk->format),
                     disk->pdev_path));
                 flexarray_append(back, "params");
                 flexarray_append(back, libxl__strdup(&gc, dev));
@@ -1013,8 +1021,6 @@
                 flexarray_append(back, "physical-device");
                 flexarray_append(back, libxl__sprintf(&gc, "%x:%x", major, 
minor));
                 device.backend_kind = DEVICE_VBD;
-
-                break;
             }
             break;
         case DISK_BACKEND_QDISK:

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

<Prev in Thread] Current Thread [Next in Thread>
  • [Xen-changelog] [xen-unstable] libxl: convert an empty tap disk into a qdisk, Xen patchbot-unstable <=