|
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] Re: [Xen-users] xl stack problems on CentOS6 XEN4
El 18/05/15 a les 12.22, Roger Pau Monné ha escrit:
> El 12/05/15 a les 18.08, Roger Pau Monné ha escrit:
>> It seems like libxl__device_disk_local_initiate_attach is completely
>> ignoring the fact that disk->script is not NULL, so it has to attach the
>> disk to Dom0 before running the bootloader (instead of setting dev =
>> disk->pdev_path). I will try to find some time tomorrow to look into this.
>
> Hello,
>
> Could you please test the following patch?
The previous patch was not complete, it missed a chunk in
libxl__device_disk_local_initiate_detach. Please use the patch below
instead.
Roger.
---
diff --git a/tools/libxl/libxl.c b/tools/libxl/libxl.c
index a6eb2df..99e9c45 100644
--- a/tools/libxl/libxl.c
+++ b/tools/libxl/libxl.c
@@ -3063,9 +3063,16 @@ void libxl__device_disk_local_initiate_attach(libxl__egc
*egc,
switch (disk->backend) {
case LIBXL_DISK_BACKEND_PHY:
- LIBXL__LOG(ctx, LIBXL__LOG_DEBUG, "locally attaching PHY disk %s",
- disk->pdev_path);
- dev = disk->pdev_path;
+ if (disk->script == NULL) {
+ LOG(DEBUG, "locally attaching PHY disk %s", disk->pdev_path);
+ dev = disk->pdev_path;
+ } else {
+ libxl__prepare_ao_device(ao, &dls->aodev);
+ dls->aodev.callback = local_device_attach_cb;
+ device_disk_add(egc, LIBXL_TOOLSTACK_DOMID, disk, &dls->aodev,
+ libxl__alloc_vdev, (void *) blkdev_start);
+ return;
+ }
break;
case LIBXL_DISK_BACKEND_TAP:
switch (disk->format) {
@@ -3142,7 +3149,7 @@ static void local_device_attach_cb(libxl__egc *egc,
libxl__ao_device *aodev)
}
dev = GCSPRINTF("/dev/%s", disk->vdev);
- LOG(DEBUG, "locally attaching qdisk %s", dev);
+ LOG(DEBUG, "locally attaching disk %s", dev);
rc = libxl__device_from_disk(gc, LIBXL_TOOLSTACK_DOMID, disk, &device);
if (rc < 0)
@@ -3183,6 +3190,7 @@ void libxl__device_disk_local_initiate_detach(libxl__egc
*egc,
switch (disk->backend) {
case LIBXL_DISK_BACKEND_QDISK:
+ case LIBXL_DISK_BACKEND_PHY:
if (disk->vdev != NULL) {
GCNEW(device);
rc = libxl__device_from_disk(gc, LIBXL_TOOLSTACK_DOMID,
@@ -3199,7 +3207,6 @@ void libxl__device_disk_local_initiate_detach(libxl__egc
*egc,
/* disk->vdev == NULL; fall through */
default:
/*
- * Nothing to do for PHYSTYPE_PHY.
* For other device types assume that the blktap2 process is
* needed by the soon to be started domain and do nothing.
*/
_______________________________________________
Xen-users mailing list
Xen-users@xxxxxxxxxxxxx
http://lists.xen.org/xen-users
|
![]() |
Lists.xenproject.org is hosted with RackSpace, monitoring our |