system/xen: Local attach support for PHY backends using scripts

This commit is contained in:
Mario Preksavec 2014-11-10 01:32:11 +01:00 committed by Willy Sudiarto Raharjo
parent aca2f3e6ae
commit 6577920068
2 changed files with 62 additions and 1 deletions

View file

@ -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.
*/

View file

@ -24,7 +24,7 @@
PRGNAM=xen
VERSION=${VERSION:-4.3.3}
BUILD=${BUILD:-1}
BUILD=${BUILD:-2}
TAG=${TAG:-_SBo}
if [ -z "$ARCH" ]; then
@ -80,6 +80,9 @@ patch -p1 <$CWD/patches/configuration_goes_to_system_etc.diff
patch -p1 <$CWD/patches/symlinks_instead_of_hardlinks.diff
patch -p1 <$CWD/patches/remove_obsolete_udev_rules.diff
# Local attach support for PHY backends using scripts
patch -p1 <$CWD/patches/local_attach_support_for_phy.patch
# Let's not download stuff during the build...
patch -p1 <$CWD/patches/use_already_present_ipxe.diff
cp -a $CWD/ipxe-git-9a93db3f0947484e30e753bbd61a10b17336e20e.tar.gz \