From: Michal Privoznik Date: Thu, 28 Feb 2019 14:08:19 +0000 (+0100) Subject: virISCSIDirectRefreshVol: Don't clear volumes in each run X-Git-Url: http://xenbits.xensource.com/gitweb?a=commitdiff_plain;h=bf5cf610f206d5d54914e8f8b0764b2b37ddf50c;p=libvirt.git virISCSIDirectRefreshVol: Don't clear volumes in each run When fetching LUNs from iscsi server the virISCSIDirectReportLuns() is called. This function does some libiscsi calls and then calls virISCSIDirectRefreshVol() over each LUN found. It's unfortunate that the latter calls virStoragePoolObjClearVols() as we lose all LUNs processed in previous iterations. Signed-off-by: Michal Privoznik Reviewed-by: Jiri Denemark --- diff --git a/src/storage/storage_backend_iscsi_direct.c b/src/storage/storage_backend_iscsi_direct.c index 20997d5c5d..32ceb592d9 100644 --- a/src/storage/storage_backend_iscsi_direct.c +++ b/src/storage/storage_backend_iscsi_direct.c @@ -309,7 +309,6 @@ virISCSIDirectRefreshVol(virStoragePoolObjPtr pool, uint32_t nb_block; VIR_AUTOPTR(virStorageVolDef) vol = NULL; - virStoragePoolObjClearVols(pool); if (virISCSIDirectTestUnitReady(iscsi, lun) < 0) return -1; @@ -376,6 +375,7 @@ virISCSIDirectReportLuns(virStoragePoolObjPtr pool, def->capacity = 0; def->allocation = 0; + virStoragePoolObjClearVols(pool); for (i = 0; i < list->num; i++) { if (virISCSIDirectRefreshVol(pool, iscsi, list->luns[i], portal) < 0) goto cleanup;