device.domid = domid;
device.kind = DEVICE_VBD;
+ /* If blktap is not available then fallback to qdisk */
+ if (disk->backend == DISK_BACKEND_TAP && !libxl__blktap_enabled(&gc))
+ disk->backend = DISK_BACKEND_QDISK;
+
switch (disk->backend) {
case DISK_BACKEND_PHY:
libxl__device_physdisk_major_minor(disk->pdev_path, &major, &minor);
device.backend_kind = DEVICE_VBD;
break;
case DISK_BACKEND_TAP:
- if (libxl__blktap_enabled(&gc) && disk->format != DISK_FORMAT_EMPTY) {
+ if (disk->format != DISK_FORMAT_EMPTY) {
const char *dev = libxl__blktap_devpath(&gc,
disk->pdev_path, disk->format);
if (!dev) {
break;
}
- case DISK_BACKEND_QDISK:
+ break;
+ case DISK_BACKEND_QDISK:
flexarray_append(back, "params");
flexarray_append(back, libxl__sprintf(&gc, "%s:%s",
libxl__device_disk_string_of_format(disk->format), disk->pdev_path));