From 05bcf6f06d7f226ec7c5014acd9e25f4d31c86b6 Mon Sep 17 00:00:00 2001 From: Jim Fehlig Date: Mon, 13 May 2013 12:14:20 -0600 Subject: [PATCH] libxl: Fix disk format error message Specifying an unsupported disk format with the tap driver resulted in a less than helpful error message error: Failed to start domain test-hvm error: internal error libxenlight does not support disk driver qed Change the message to state that the qed format is not supported by the tap driver, e.g. error: Failed to start domain test-hvm error: internal error libxenlight does not support disk format qed with disk driver tap While at it, check for unsupported formats in the other driver backends. --- src/libxl/libxl_conf.c | 24 ++++++++++++++++++++++-- 1 file changed, 22 insertions(+), 2 deletions(-) diff --git a/src/libxl/libxl_conf.c b/src/libxl/libxl_conf.c index 1be66dad11..a47204e153 100644 --- a/src/libxl/libxl_conf.c +++ b/src/libxl/libxl_conf.c @@ -484,14 +484,34 @@ libxlMakeDisk(virDomainDiskDefPtr l_disk, libxl_device_disk *x_disk) break; default: virReportError(VIR_ERR_INTERNAL_ERROR, - _("libxenlight does not support disk driver %s"), - virStorageFileFormatTypeToString(l_disk->format)); + _("libxenlight does not support disk format %s " + "with disk driver %s"), + virStorageFileFormatTypeToString(l_disk->format), + l_disk->driverName); return -1; } } else if (STREQ(l_disk->driverName, "file")) { + if (l_disk->format != VIR_STORAGE_FILE_NONE && + l_disk->format != VIR_STORAGE_FILE_RAW) { + virReportError(VIR_ERR_INTERNAL_ERROR, + _("libxenlight does not support disk format %s " + "with disk driver %s"), + virStorageFileFormatTypeToString(l_disk->format), + l_disk->driverName); + return -1; + } x_disk->format = LIBXL_DISK_FORMAT_RAW; x_disk->backend = LIBXL_DISK_BACKEND_TAP; } else if (STREQ(l_disk->driverName, "phy")) { + if (l_disk->format != VIR_STORAGE_FILE_NONE && + l_disk->format != VIR_STORAGE_FILE_RAW) { + virReportError(VIR_ERR_INTERNAL_ERROR, + _("libxenlight does not support disk format %s " + "with disk driver %s"), + virStorageFileFormatTypeToString(l_disk->format), + l_disk->driverName); + return -1; + } x_disk->format = LIBXL_DISK_FORMAT_RAW; x_disk->backend = LIBXL_DISK_BACKEND_PHY; } else { -- GitLab