]> git.michaelhowe.org Git - packages/o/openafs.git/commitdiff
afs: Handle VNOSERVICE as a timeout
authorAndrew Deason <adeason@sinenomine.net>
Wed, 14 Nov 2012 00:27:11 +0000 (18:27 -0600)
committerDerrick Brashear <shadow@your-file-system.com>
Wed, 28 Nov 2012 16:33:53 +0000 (08:33 -0800)
For whatever reason, the fileserver uses VNOSERVICE to indicate that
an Rx call was killed due to an idledead timeout. It is not used for
any volume errors, so treat it like the idle dead error codes.

Change-Id: I432cbb8ae011d5269ac8df31261d11204687fcf6
Reviewed-on: http://gerrit.openafs.org/8462
Tested-by: BuildBot <buildbot@rampaginggeek.com>
Reviewed-by: Derrick Brashear <shadow@your-file-system.com>
src/afs/afs_analyze.c

index 34db88f1cbf68fa127b958b98414505703bdfd87..0e77b530af29988d1c2ec4996419b586832479c9 100644 (file)
@@ -621,7 +621,7 @@ afs_Analyze(struct afs_conn *aconn, struct rx_connection *rxconn,
        shouldRetry = 1;
        goto out;
     }
-    if (acode == RX_CALL_TIMEOUT || acode == RX_CALL_IDLE) {
+    if (acode == RX_CALL_TIMEOUT || acode == RX_CALL_IDLE || acode == VNOSERVICE) {
        serversleft = afs_BlackListOnce(areq, afid, tsp);
        if (afid)
            tvp = afs_FindVolume(afid, READ_LOCK);
@@ -778,7 +778,7 @@ afs_Analyze(struct afs_conn *aconn, struct rx_connection *rxconn,
     }
     /* Check for bad volume data base / missing volume. */
     else if (acode == VSALVAGE || acode == VOFFLINE || acode == VNOVOL
-            || acode == VNOSERVICE || acode == VMOVED) {
+            || acode == VMOVED) {
        struct cell *tcell;
        int same;