From: Jeffrey Altman Date: Thu, 1 Mar 2012 20:49:12 +0000 (-0500) Subject: unix: always retry RX_CALL_BUSY X-Git-Tag: upstream/1.8.0_pre1^2~2714 X-Git-Url: https://git.michaelhowe.org/gitweb/?a=commitdiff_plain;h=579976cf246bd55dea2dfd3bf8470fd8bb8bde0a;p=packages%2Fo%2Fopenafs.git unix: always retry RX_CALL_BUSY 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. Change-Id: Ic4ef9bac800087f1b287d3da08fcd5eec84374ef Reviewed-on: http://gerrit.openafs.org/6852 Tested-by: BuildBot Reviewed-by: Hartmut Reuter Reviewed-by: Jeffrey Altman Tested-by: Jeffrey Altman --- diff --git a/src/afs/afs_analyze.c b/src/afs/afs_analyze.c index 859998ab7..9a2087c87 100644 --- a/src/afs/afs_analyze.c +++ b/src/afs/afs_analyze.c @@ -568,11 +568,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);