aboutsummaryrefslogtreecommitdiffstats
path: root/tools/libxl/libxl_device.c
diff options
context:
space:
mode:
authorRoger Pau Monne <roger.pau@citrix.com>2013-05-03 13:23:01 +0200
committerIan Campbell <ian.campbell@citrix.com>2013-05-08 12:06:41 +0100
commit846bd69104e5d62f29b7282419827e52e99f3efd (patch)
tree8cab8b290349008c6052ac4c0fd86bb5d2a308d4 /tools/libxl/libxl_device.c
parentdd4409a8e9cf56d1d0bb30b25483df31aee9336e (diff)
downloadxen-846bd69104e5d62f29b7282419827e52e99f3efd.tar.gz
xen-846bd69104e5d62f29b7282419827e52e99f3efd.tar.bz2
xen-846bd69104e5d62f29b7282419827e52e99f3efd.zip
libxl: correctly parse storage devices on driver domains
Don't try to check physical devices if they belong to a domain different than the one where the toolstack is running. This prevents the following error when trying to use storage driver domains: libxl: debug: libxl_create.c:1246:do_domain_create: ao 0x1819240: create: how=(nil) callback=(nil) poller=0x1818fa0 libxl: debug: libxl_device.c:235:libxl__device_disk_set_backend: Disk vdev=xvda spec.backend=phy libxl: debug: libxl_device.c:175:disk_try_backend: Disk vdev=xvda, backend phy unsuitable as phys path not a block device libxl: error: libxl_device.c:278:libxl__device_disk_set_backend: no suitable backend for disk xvda Signed-off-by: Roger Pau Monné <roger.pau@citrix.com> Acked-by: Ian Jackson <ian.jackson@eu.citrix.com>
Diffstat (limited to 'tools/libxl/libxl_device.c')
-rw-r--r--tools/libxl/libxl_device.c6
1 files changed, 6 insertions, 0 deletions
diff --git a/tools/libxl/libxl_device.c b/tools/libxl/libxl_device.c
index a5cf446a24..b1fc4efe03 100644
--- a/tools/libxl/libxl_device.c
+++ b/tools/libxl/libxl_device.c
@@ -161,6 +161,12 @@ static int disk_try_backend(disk_try_backend_args *a,
goto bad_format;
}
+ if (a->disk->backend_domid != LIBXL_TOOLSTACK_DOMID) {
+ LOG(DEBUG, "Disk vdev=%s, is using a storage driver domain, "
+ "skipping physical device check", a->disk->vdev);
+ return backend;
+ }
+
if (a->disk->script) {
LOG(DEBUG, "Disk vdev=%s, uses script=... assuming phy backend",
a->disk->vdev);