On 2012年09月25日 00:42, Eric Blake wrote:
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.
Thanks, pushed with nits fixed.