diff options
author | Mario Preksavec <mario@slackware.hr> | 2014-11-10 01:32:11 +0100 |
---|---|---|
committer | Willy Sudiarto Raharjo <willysr@slackbuilds.org> | 2014-11-15 08:30:43 +0700 |
commit | 6577920068e0232b8a8ed7f97f679e7ed7efa932 (patch) | |
tree | d0b0894c1cf18c8255eae212a6ac705fc923c8c8 /system/xen/patches | |
parent | aca2f3e6aeec45d3fe772ddefc8c5646f8c38079 (diff) |
system/xen: Local attach support for PHY backends using scripts
Diffstat (limited to 'system/xen/patches')
-rw-r--r-- | system/xen/patches/local_attach_support_for_phy.patch | 58 |
1 files changed, 58 insertions, 0 deletions
diff --git a/system/xen/patches/local_attach_support_for_phy.patch b/system/xen/patches/local_attach_support_for_phy.patch new file mode 100644 index 0000000000000..41fe63984559a --- /dev/null +++ b/system/xen/patches/local_attach_support_for_phy.patch @@ -0,0 +1,58 @@ +commit 3bcf91cbbd9a18db9ae7d594ffde7979774ed512 +Author: Roger Pau Monne <roger.pau@xxxxxxxxxx> +Date: Wed Feb 12 11:15:17 2014 +0100 + + libxl: local attach support for PHY backends using scripts + + Allow disks using the PHY backend to locally attach if using a script. + + Signed-off-by: Roger Pau Monnà <roger.pau@xxxxxxxxxx> + Suggested-by: Ian Campbell <ian.campbell@xxxxxxxxxx> + + +Index: xen-4.3.2-testing/tools/libxl/libxl.c +=================================================================== +--- xen-4.3.2-testing.orig/tools/libxl/libxl.c ++++ xen-4.3.2-testing/tools/libxl/libxl.c +@@ -2604,6 +2604,16 @@ void libxl__device_disk_local_initiate_a + + switch (disk->backend) { + case LIBXL_DISK_BACKEND_PHY: ++ if (disk->script != NULL) { ++ LOG(DEBUG, "trying to locally attach PHY device %s with script %s", ++ disk->pdev_path, disk->script); ++ 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; ++ } + LIBXL__LOG(ctx, LIBXL__LOG_DEBUG, "locally attaching PHY disk %s", + disk->pdev_path); + dev = disk->pdev_path; +@@ -2683,7 +2693,7 @@ static void local_device_attach_cb(libxl + } + + dev = GCSPRINTF("/dev/%s", disk->vdev); +- LOG(DEBUG, "locally attaching qdisk %s", dev); ++ LOG(DEBUG, "locally attached disk %s", dev); + + rc = libxl__device_from_disk(gc, LIBXL_TOOLSTACK_DOMID, disk, &device); + if (rc < 0) +@@ -2723,6 +2733,7 @@ void libxl__device_disk_local_initiate_d + if (!dls->diskpath) goto out; + + switch (disk->backend) { ++ case LIBXL_DISK_BACKEND_PHY: + case LIBXL_DISK_BACKEND_QDISK: + if (disk->vdev != NULL) { + GCNEW(device); +@@ -2740,7 +2751,6 @@ void libxl__device_disk_local_initiate_d + /* 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. + */ |