[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Xen-devel] [PATCH 4 of 4 v2] blktap3/libxl: pygrub support for RAW and VHD images



This patch allows guests to boot from RAW and VHD images using pygrub.

Signed-off-by: Thanos Makatos <thanos.makatos@xxxxxxxxxx>

diff --git a/tools/blktap3/drivers/tapdisk-control.c 
b/tools/blktap3/drivers/tapdisk-control.c
--- a/tools/blktap3/drivers/tapdisk-control.c
+++ b/tools/blktap3/drivers/tapdisk-control.c
@@ -910,7 +910,7 @@ tapdisk_control_xenblkif_connect(
     assert(request);
     assert(response);
 
-    len = strnlen(request->u.string.text, TAPDISK_MESSAGE_STRING_LENGTH);
+    len = strnlen(request->u.blkif.params, TAPDISK_MESSAGE_STRING_LENGTH);
     /* TODO boilerplate */
     if (len < 1) {
         err = -EINVAL;
diff --git a/tools/libxl/libxl.c b/tools/libxl/libxl.c
--- a/tools/libxl/libxl.c
+++ b/tools/libxl/libxl.c
@@ -2636,6 +2636,7 @@ void libxl__device_disk_local_initiate_a
             }
             break;
         case LIBXL_DISK_BACKEND_QDISK:
+        case LIBXL_DISK_BACKEND_TAP3:
             if (disk->format != LIBXL_DISK_FORMAT_RAW) {
                 libxl__prepare_ao_device(ao, &dls->aodev);
                 dls->aodev.callback = local_device_attach_cb;
@@ -2728,6 +2729,7 @@ void libxl__device_disk_local_initiate_d
 
     switch (disk->backend) {
         case LIBXL_DISK_BACKEND_QDISK:
+        case LIBXL_DISK_BACKEND_TAP3:
             if (disk->vdev != NULL) {
                 GCNEW(device);
                 rc = libxl__device_from_disk(gc, LIBXL_TOOLSTACK_DOMID,
diff --git a/tools/libxl/libxl_device.c b/tools/libxl/libxl_device.c
--- a/tools/libxl/libxl_device.c
+++ b/tools/libxl/libxl_device.c
@@ -753,8 +753,8 @@ void libxl__wait_device_connection(libxl
          */
         device_hotplug(egc, aodev);
         return;
-    }
-
+    } else if (aodev->dev->backend_kind == LIBXL__DEVICE_KIND_VBD3)
+        goto out;
     rc = libxl__ev_devstate_wait(gc, &aodev->backend_ds,
                                  device_backend_callback,
                                  state_path, XenbusStateInitWait,

_______________________________________________
Xen-devel mailing list
Xen-devel@xxxxxxxxxxxxx
http://lists.xen.org/xen-devel


 


Rackspace

Lists.xenproject.org is hosted with RackSpace, monitoring our
servers 24x7x365 and backed by RackSpace's Fanatical Support®.