On 09/24/2012 02:44 AM, Osier Yang wrote: > It might need some time till the LUN's stable path shows up on > initiator host, and although the time window is not foreseeable, > as a better than nothing fix, this patch adds timeout for the > stable path discovery process. > --- > src/storage/storage_backend.c | 14 ++++++++++++-- > 1 files changed, 12 insertions(+), 2 deletions(-) > @@ -1384,8 +1385,12 @@ virStorageBackendStablePath(virStoragePoolObjPtr pool, > /* The pool is pointing somewhere like /dev/disk/by-path > * or /dev/disk/by-id, so we need to check all symlinks in > * the target directory and figure out which one points > - * to this device node > + * to this device node. > + * > + * And it might need some time till the stabe path shows s/stabe/stable/ > + * up, so add timeout to retry here. > */ > + retry: > while ((dent = readdir(dh)) != NULL) { > if (dent->d_name[0] == '.') > continue; > @@ -1406,6 +1411,11 @@ virStorageBackendStablePath(virStoragePoolObjPtr pool, > VIR_FREE(stablepath); > } > > + if (++retry < 100) { Why a magic number of 100? Not even a comment mentioning the maximum time we are waiting? > + usleep(100 * 1000); This says up to 100ms * 100, or 10 seconds. I guess that seems reasonable enough. ACK if you fix those issues. -- Eric Blake eblake@xxxxxxxxxx +1-919-301-3266 Libvirt virtualization library http://libvirt.org
Attachment:
signature.asc
Description: OpenPGP digital signature
-- libvir-list mailing list libvir-list@xxxxxxxxxx https://www.redhat.com/mailman/listinfo/libvir-list