]> git.michaelhowe.org Git - packages/o/openafs.git/commitdiff
unix: always retry RX_CALL_BUSY
authorJeffrey Altman <jaltman@your-file-system.com>
Thu, 1 Mar 2012 20:49:12 +0000 (15:49 -0500)
committerJeffrey Altman <jaltman@secure-endpoints.com>
Fri, 2 Mar 2012 13:55:37 +0000 (05:55 -0800)
RX_CALL_BUSY is an indication that the call channel is busy not
that the server is down or otherwise cannot respond.  Unconditionally
retry the RPC and do not alter state.  We just want to force the use
of a different call channel.

Reviewed-on: http://gerrit.openafs.org/6852
Tested-by: BuildBot <buildbot@rampaginggeek.com>
Reviewed-by: Hartmut Reuter <reuter@rzg.mpg.de>
Reviewed-by: Jeffrey Altman <jaltman@secure-endpoints.com>
Tested-by: Jeffrey Altman <jaltman@secure-endpoints.com>
(cherry picked from commit 579976cf246bd55dea2dfd3bf8470fd8bb8bde0a)

Change-Id: I1ab5ed69dc707f13620d91a01227679c47bb97df
Reviewed-on: http://gerrit.openafs.org/6853
Tested-by: BuildBot <buildbot@rampaginggeek.com>
Reviewed-by: Jeffrey Altman <jaltman@secure-endpoints.com>
Tested-by: Jeffrey Altman <jaltman@secure-endpoints.com>
src/afs/afs_analyze.c

index 1cd7b8a40c3c99abef71cd45ceebb206caec7b7d..efda1be9a7bba5bc19e2a41db8fa0d98c79d5d12 100644 (file)
@@ -572,11 +572,11 @@ afs_Analyze(struct afs_conn *aconn, struct rx_connection *rxconn,
        acode = 455;
 #endif /* AFS_64BIT_CLIENT */
     if ((acode < 0) && (acode != VRESTARTING)) {
-       if (acode == RX_MSGSIZE) {
+       if (acode == RX_MSGSIZE || acode == RX_CALL_BUSY) {
            shouldRetry = 1;
            goto out;
        }
-       if (acode == RX_CALL_TIMEOUT || acode == RX_CALL_IDLE || acode == RX_CALL_BUSY) {
+       if (acode == RX_CALL_TIMEOUT || acode == RX_CALL_IDLE) {
            serversleft = afs_BlackListOnce(areq, afid, tsp);
            if (afid)
                tvp = afs_FindVolume(afid, READ_LOCK);