diff --git a/src/storage/storage_backend_scsi.c b/src/storage/storage_backend_scsi.c index 6f86ffce597cbbf4dfd917f9237853cfd4c26e8d..08e13313ac5a30f0df97664b2246c3d58b208e60 100644 --- a/src/storage/storage_backend_scsi.c +++ b/src/storage/storage_backend_scsi.c @@ -495,6 +495,7 @@ virStorageBackendSCSIFindLUs(virStoragePoolObjPtr pool, DIR *devicedir = NULL; struct dirent *lun_dirent = NULL; char devicepattern[64]; + bool found = false; VIR_DEBUG("Discovering LUs on host %u", scanhost); @@ -516,11 +517,15 @@ virStorageBackendSCSIFindLUs(virStoragePoolObjPtr pool, continue; } + found = true; VIR_DEBUG("Found LU '%s'", lun_dirent->d_name); processLU(pool, scanhost, bus, target, lun); } + if (!found) + VIR_DEBUG("No LU found for pool %s", pool->def->name); + closedir(devicedir); return retval; diff --git a/tools/virsh.pod b/tools/virsh.pod index 77f93830121550f07a80d66c99284c6d8ab9b94a..9e670dadfb5ff2ced67c67c16e1b9da0bfa7e8a1 100644 --- a/tools/virsh.pod +++ b/tools/virsh.pod @@ -2650,6 +2650,15 @@ Refresh the list of volumes contained in I. Start the storage I, which is previously defined but inactive. +B: A storage pool that relies on remote resources such as an +"iscsi" or a (v)HBA backed "scsi" pool may need to be refreshed multiple +times in order to have all the volumes detected (see B). +This is because the corresponding volume devices may not be present in +the host's filesystem during the initial pool startup or the current +refresh attempt. The number of refresh retries is dependant upon the +network connection and the time the host takes to export the +corresponding devices. + =item B I Undefine the configuration for an inactive I.