Unix CM: reset blacklist on hard-mount retry
authorMichael Meffie <mmeffie@sinenomine.net>
Wed, 14 Dec 2011 17:52:51 +0000 (12:52 -0500)
committerDerrick Brashear <shadow@dementix.org>
Tue, 3 Jan 2012 18:37:52 +0000 (10:37 -0800)
Reset black-listed servers on a request when retrying due to a
hard-mount retry. When hard-mounts are in effect, a request may
retry indefinitely. If all the servers have been black-listed
due to a transient error, the request may never complete.

Change-Id: I2510f729cbbb21836b139c94e25867118a6ad873
Reviewed-on: http://gerrit.openafs.org/6330
Reviewed-by: Andrew Deason <adeason@sinenomine.net>
Tested-by: BuildBot <buildbot@rampaginggeek.com>
Reviewed-by: Derrick Brashear <shadow@dementix.org>

src/afs/afs_analyze.c

index 8a417ff..47fdff3 100644 (file)
@@ -445,6 +445,8 @@ afs_Analyze(struct afs_conn *aconn, struct rx_connection *rxconn,
 
                        VSleep(hm_retry_int);
                        afs_CheckServers(1, cellp);
+                       /* clear the black listed servers on this request. */
+                       memset(areq->skipserver, 0, sizeof(areq->skipserver));
 
                        if (vp_vhm) {
                            tvp = afs_FindVolume(afid, READ_LOCK);