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>
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);