So the idea is as follows: firstly we obtain a list of all the
luns, then iterate over it trying to find the one we want to work
with and after all the iterations we detect whether we have found
something. Now, the last check is broken, because it compares a
value form previous iteration, not the one we've just been
through.
Then, when computing md5 sum of lun's UUID, we use wrong variable
again. Well, @hostScsiDisk which is type of esxVI_HostScsiDisk
extends esxVI_ScsiLun type so they both have the uuid member, but
it just doesn't feel right to access the data via two different
variables in one function call.
Signed-off-by: Michal Privoznik <mprivozn(a)redhat.com>
---
src/esx/esx_storage_backend_iscsi.c | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/src/esx/esx_storage_backend_iscsi.c b/src/esx/esx_storage_backend_iscsi.c
index a9a19cf..96b472e 100644
--- a/src/esx/esx_storage_backend_iscsi.c
+++ b/src/esx/esx_storage_backend_iscsi.c
@@ -687,7 +687,7 @@ esxStorageVolGetXMLDesc(virStorageVolPtr volume,
}
}
- if (!hostScsiDisk) {
+ if (!scsiLun) {
virReportError(VIR_ERR_INTERNAL_ERROR,
_("Could find volume with name: %s"), volume->name);
goto cleanup;
@@ -697,7 +697,7 @@ esxStorageVolGetXMLDesc(virStorageVolPtr volume,
def.name = volume->name;
- md5_buffer(scsiLun->uuid, strlen(hostScsiDisk->uuid), md5);
+ md5_buffer(scsiLun->uuid, strlen(scsiLun->uuid), md5);
virUUIDFormat(md5, uuid_string);
--
2.8.3