From 6577920068e0232b8a8ed7f97f679e7ed7efa932 Mon Sep 17 00:00:00 2001 From: Mario Preksavec Date: Mon, 10 Nov 2014 01:32:11 +0100 Subject: system/xen: Local attach support for PHY backends using scripts --- .../xen/patches/local_attach_support_for_phy.patch | 58 ++++++++++++++++++++++ system/xen/xen.SlackBuild | 5 +- 2 files changed, 62 insertions(+), 1 deletion(-) create mode 100644 system/xen/patches/local_attach_support_for_phy.patch (limited to 'system/xen') 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 0000000000..41fe639845 --- /dev/null +++ b/system/xen/patches/local_attach_support_for_phy.patch @@ -0,0 +1,58 @@ +commit 3bcf91cbbd9a18db9ae7d594ffde7979774ed512 +Author: Roger Pau Monne +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à + Suggested-by: Ian Campbell + + +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. + */ diff --git a/system/xen/xen.SlackBuild b/system/xen/xen.SlackBuild index abb0c177d1..1a340e2120 100644 --- a/system/xen/xen.SlackBuild +++ b/system/xen/xen.SlackBuild @@ -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 \ -- cgit v1.2.3