2014-04-25 20:20 GMT+02:00 Dawid Zamirski <dzamirski(a)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