diff --git a/src/libxl/libxl_conf.c b/src/libxl/libxl_conf.c index 28b05e1ce4d802d4ccd71ebb68e167baf1deaabd..50dc777c9486dafb2dd7cda5c0b77210601e3f93 100644 --- a/src/libxl/libxl_conf.c +++ b/src/libxl/libxl_conf.c @@ -765,8 +765,6 @@ libxlMakeDisk(virDomainDiskDefPtr l_disk, libxl_device_disk *x_disk) x_disk->format = LIBXL_DISK_FORMAT_VHD; x_disk->backend = LIBXL_DISK_BACKEND_TAP; break; - case VIR_STORAGE_FILE_NONE: - /* No subtype specified, default to raw/tap */ case VIR_STORAGE_FILE_RAW: x_disk->format = LIBXL_DISK_FORMAT_RAW; x_disk->backend = LIBXL_DISK_BACKEND_TAP; @@ -802,8 +800,6 @@ libxlMakeDisk(virDomainDiskDefPtr l_disk, libxl_device_disk *x_disk) case VIR_STORAGE_FILE_VHD: x_disk->format = LIBXL_DISK_FORMAT_VHD; break; - case VIR_STORAGE_FILE_NONE: - /* No subtype specified, default to raw */ case VIR_STORAGE_FILE_RAW: x_disk->format = LIBXL_DISK_FORMAT_RAW; break; @@ -816,8 +812,7 @@ libxlMakeDisk(virDomainDiskDefPtr l_disk, libxl_device_disk *x_disk) return -1; } } else if (STREQ(driver, "file")) { - if (format != VIR_STORAGE_FILE_NONE && - format != VIR_STORAGE_FILE_RAW) { + if (format != VIR_STORAGE_FILE_RAW) { virReportError(VIR_ERR_INTERNAL_ERROR, _("libxenlight does not support disk format %s " "with disk driver %s"), @@ -828,8 +823,7 @@ libxlMakeDisk(virDomainDiskDefPtr l_disk, libxl_device_disk *x_disk) x_disk->format = LIBXL_DISK_FORMAT_RAW; x_disk->backend = LIBXL_DISK_BACKEND_QDISK; } else if (STREQ(driver, "phy")) { - if (format != VIR_STORAGE_FILE_NONE && - format != VIR_STORAGE_FILE_RAW) { + if (format != VIR_STORAGE_FILE_RAW) { virReportError(VIR_ERR_INTERNAL_ERROR, _("libxenlight does not support disk format %s " "with disk driver %s"), diff --git a/src/libxl/libxl_domain.c b/src/libxl/libxl_domain.c index ed73cd2e2dfb01610fdac28f2bb378deb4e2d37a..c0ace33bbda32b116c3107ec92c629b17a316d38 100644 --- a/src/libxl/libxl_domain.c +++ b/src/libxl/libxl_domain.c @@ -362,16 +362,21 @@ libxlDomainDeviceDefPostParse(virDomainDeviceDefPtr dev, } } - /* for network-based disks, set 'qemu' as the default driver */ if (dev->type == VIR_DOMAIN_DEVICE_DISK) { virDomainDiskDefPtr disk = dev->data.disk; int actual_type = virStorageSourceGetActualType(disk->src); + int format = virDomainDiskGetFormat(disk); + /* for network-based disks, set 'qemu' as the default driver */ if (actual_type == VIR_STORAGE_TYPE_NETWORK) { if (!virDomainDiskGetDriver(disk) && virDomainDiskSetDriver(disk, "qemu") < 0) return -1; } + + /* xl.cfg default format is raw. See xl-disk-configuration(5) */ + if (format == VIR_STORAGE_FILE_NONE) + virDomainDiskSetFormat(disk, VIR_STORAGE_FILE_RAW); } return 0; diff --git a/src/libxl/libxl_driver.c b/src/libxl/libxl_driver.c index 38ad91e94fb743970045eb3f537c8e0299c45893..dedf85ae223c0dd3637889bf710080a78cbacaa4 100644 --- a/src/libxl/libxl_driver.c +++ b/src/libxl/libxl_driver.c @@ -5468,8 +5468,7 @@ libxlDomainBlockStatsGatherSingle(virDomainObjPtr vm, disk_drv = "qemu"; if (STREQ(disk_drv, "phy")) { - if (disk_fmt != VIR_STORAGE_FILE_RAW && - disk_fmt != VIR_STORAGE_FILE_NONE) { + if (disk_fmt != VIR_STORAGE_FILE_RAW) { virReportError(VIR_ERR_OPERATION_UNSUPPORTED, _("unsupported format %s"), virStorageFileFormatTypeToString(disk_fmt));