Loading net/sunrpc/clnt.c +14 −33 Original line number Diff line number Diff line Loading @@ -70,7 +70,6 @@ static void call_status(struct rpc_task *task); static void call_transmit_status(struct rpc_task *task); static void call_refresh(struct rpc_task *task); static void call_refreshresult(struct rpc_task *task); static void call_timeout(struct rpc_task *task); static void call_connect(struct rpc_task *task); static void call_connect_status(struct rpc_task *task); Loading Loading @@ -1908,7 +1907,8 @@ call_bind_status(struct rpc_task *task) retry_timeout: task->tk_status = 0; task->tk_action = call_timeout; task->tk_action = call_encode; rpc_check_timeout(task); } /* Loading Loading @@ -2197,10 +2197,8 @@ call_status(struct rpc_task *task) case -EHOSTUNREACH: case -ENETUNREACH: case -EPERM: if (RPC_IS_SOFTCONN(task)) { rpc_exit(task, status); break; } if (RPC_IS_SOFTCONN(task)) goto out_exit; /* * Delay any retries for 3 seconds, then handle as if it * were a timeout. Loading @@ -2208,7 +2206,6 @@ call_status(struct rpc_task *task) rpc_delay(task, 3*HZ); /* fall through */ case -ETIMEDOUT: task->tk_action = call_timeout; break; case -ECONNREFUSED: case -ECONNRESET: Loading @@ -2221,18 +2218,21 @@ call_status(struct rpc_task *task) case -EPIPE: case -ENOTCONN: case -EAGAIN: task->tk_action = call_timeout; break; case -EIO: /* shutdown or soft timeout */ rpc_exit(task, status); break; goto out_exit; default: if (clnt->cl_chatty) printk("%s: RPC call returned error %d\n", clnt->cl_program->name, -status); rpc_exit(task, status); goto out_exit; } task->tk_action = call_encode; rpc_check_timeout(task); return; out_exit: rpc_exit(task, status); } static void Loading Loading @@ -2279,19 +2279,6 @@ rpc_check_timeout(struct rpc_task *task) rpcauth_invalcred(task); } /* * 6a. Handle RPC timeout * We do not release the request slot, so we keep using the * same XID for all retransmits. */ static void call_timeout(struct rpc_task *task) { task->tk_action = call_encode; task->tk_status = 0; rpc_check_timeout(task); } /* * 7. Decode the RPC reply */ Loading Loading @@ -2329,16 +2316,8 @@ call_decode(struct rpc_task *task) WARN_ON(memcmp(&req->rq_rcv_buf, &req->rq_private_buf, sizeof(req->rq_rcv_buf)) != 0); if (req->rq_rcv_buf.len < 12) { if (!RPC_IS_SOFT(task)) { task->tk_action = call_encode; goto out_retry; } dprintk("RPC: %s: too small RPC reply size (%d bytes)\n", clnt->cl_program->name, task->tk_status); task->tk_action = call_timeout; if (req->rq_rcv_buf.len < 12) goto out_retry; } xdr_init_decode(&xdr, &req->rq_rcv_buf, req->rq_rcv_buf.head[0].iov_base, req); Loading @@ -2361,6 +2340,8 @@ call_decode(struct rpc_task *task) xprt_conditional_disconnect(req->rq_xprt, req->rq_connect_cookie); } task->tk_action = call_encode; rpc_check_timeout(task); } } Loading Loading
net/sunrpc/clnt.c +14 −33 Original line number Diff line number Diff line Loading @@ -70,7 +70,6 @@ static void call_status(struct rpc_task *task); static void call_transmit_status(struct rpc_task *task); static void call_refresh(struct rpc_task *task); static void call_refreshresult(struct rpc_task *task); static void call_timeout(struct rpc_task *task); static void call_connect(struct rpc_task *task); static void call_connect_status(struct rpc_task *task); Loading Loading @@ -1908,7 +1907,8 @@ call_bind_status(struct rpc_task *task) retry_timeout: task->tk_status = 0; task->tk_action = call_timeout; task->tk_action = call_encode; rpc_check_timeout(task); } /* Loading Loading @@ -2197,10 +2197,8 @@ call_status(struct rpc_task *task) case -EHOSTUNREACH: case -ENETUNREACH: case -EPERM: if (RPC_IS_SOFTCONN(task)) { rpc_exit(task, status); break; } if (RPC_IS_SOFTCONN(task)) goto out_exit; /* * Delay any retries for 3 seconds, then handle as if it * were a timeout. Loading @@ -2208,7 +2206,6 @@ call_status(struct rpc_task *task) rpc_delay(task, 3*HZ); /* fall through */ case -ETIMEDOUT: task->tk_action = call_timeout; break; case -ECONNREFUSED: case -ECONNRESET: Loading @@ -2221,18 +2218,21 @@ call_status(struct rpc_task *task) case -EPIPE: case -ENOTCONN: case -EAGAIN: task->tk_action = call_timeout; break; case -EIO: /* shutdown or soft timeout */ rpc_exit(task, status); break; goto out_exit; default: if (clnt->cl_chatty) printk("%s: RPC call returned error %d\n", clnt->cl_program->name, -status); rpc_exit(task, status); goto out_exit; } task->tk_action = call_encode; rpc_check_timeout(task); return; out_exit: rpc_exit(task, status); } static void Loading Loading @@ -2279,19 +2279,6 @@ rpc_check_timeout(struct rpc_task *task) rpcauth_invalcred(task); } /* * 6a. Handle RPC timeout * We do not release the request slot, so we keep using the * same XID for all retransmits. */ static void call_timeout(struct rpc_task *task) { task->tk_action = call_encode; task->tk_status = 0; rpc_check_timeout(task); } /* * 7. Decode the RPC reply */ Loading Loading @@ -2329,16 +2316,8 @@ call_decode(struct rpc_task *task) WARN_ON(memcmp(&req->rq_rcv_buf, &req->rq_private_buf, sizeof(req->rq_rcv_buf)) != 0); if (req->rq_rcv_buf.len < 12) { if (!RPC_IS_SOFT(task)) { task->tk_action = call_encode; goto out_retry; } dprintk("RPC: %s: too small RPC reply size (%d bytes)\n", clnt->cl_program->name, task->tk_status); task->tk_action = call_timeout; if (req->rq_rcv_buf.len < 12) goto out_retry; } xdr_init_decode(&xdr, &req->rq_rcv_buf, req->rq_rcv_buf.head[0].iov_base, req); Loading @@ -2361,6 +2340,8 @@ call_decode(struct rpc_task *task) xprt_conditional_disconnect(req->rq_xprt, req->rq_connect_cookie); } task->tk_action = call_encode; rpc_check_timeout(task); } } Loading