
2014-04-25 20:20 GMT+02:00 Dawid Zamirski <dzamirski@dattobackup.com>:
Since the ESX storage implements VMFS and iSCSI storage backends and chooses relevant backend dynamically at runtime, there was a segfault when issuing vol-info on iSCSI volume due to unimplemented virStorageGetInfo function. This patch implements that function that was missing in iSCSI backend and returns expected result without a segfault. --- src/esx/esx_storage_backend_iscsi.c | 47 +++++++++++++++++++++++++++++++++++++ 1 file changed, 47 insertions(+)
diff --git a/src/esx/esx_storage_backend_iscsi.c b/src/esx/esx_storage_backend_iscsi.c index 4619629..3d31908 100644 --- a/src/esx/esx_storage_backend_iscsi.c +++ b/src/esx/esx_storage_backend_iscsi.c @@ -621,6 +621,52 @@ esxStorageVolCreateXMLFrom(virStoragePoolPtr pool ATTRIBUTE_UNUSED,
+ if (!hostScsiDisk) { + virReportError(VIR_ERR_INTERNAL_ERROR, + _("Could not find volume with name: %s"), + volume->name);
This should report an VIR_ERR_NO_STORAGE_VOL error instead.
@@ -752,6 +798,7 @@ virStorageDriver esxStorageBackendISCSI = { .storageVolLookupByKey = esxStorageVolLookupByKey, /* 1.0.1 */ .storageVolCreateXML = esxStorageVolCreateXML, /* 1.0.1 */ .storageVolCreateXMLFrom = esxStorageVolCreateXMLFrom, /* 1.0.1 */ + .storageVolGetInfo = esxStorageVolGetInfo, /* 1.2.4 */
As this patch missed 1.2.4, this should say 1.2.5 now. Thanks for finding and fixing this problem. I've changed the two mentioned things and pushed the patch. -- Matthias Bolte http://photron.blogspot.com