OSDN Git Service

SUNRPC: Handle ENETUNREACH, EHOSTUNREACH and EHOSTDOWN socket errors
authorTrond Myklebust <Trond.Myklebust@netapp.com>
Wed, 30 Aug 2006 18:32:49 +0000 (14:32 -0400)
committerTrond Myklebust <Trond.Myklebust@netapp.com>
Sat, 23 Sep 2006 03:24:56 +0000 (23:24 -0400)
In case of any of the above errors occuring, delay for 3 seconds, then
handle as if it were a timeout error.

Signed-off-by: Trond Myklebust <Trond.Myklebust@netapp.com>
net/sunrpc/clnt.c

index 87efcd2..355e786 100644 (file)
@@ -1030,6 +1030,14 @@ call_status(struct rpc_task *task)
 
        task->tk_status = 0;
        switch(status) {
+       case -EHOSTDOWN:
+       case -EHOSTUNREACH:
+       case -ENETUNREACH:
+               /*
+                * Delay any retries for 3 seconds, then handle as if it
+                * were a timeout.
+                */
+               rpc_delay(task, 3*HZ);
        case -ETIMEDOUT:
                task->tk_action = call_timeout;
                break;