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;
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;
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"),
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"),
}
}
- /* 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;
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));