diff options
author | Trond Myklebust <Trond.Myklebust@netapp.com> | 2006-08-31 21:44:52 +0200 |
---|---|---|
committer | Trond Myklebust <Trond.Myklebust@netapp.com> | 2006-09-23 05:25:00 +0200 |
commit | da45828e2835057045150b318c4fbe9bb91f18dd (patch) | |
tree | b04b3ae7fe4cf79c8af2f399f44d5db65995ac55 /net/sunrpc/xprt.c | |
parent | SUNRPC: Handle ENETUNREACH, EHOSTUNREACH and EHOSTDOWN socket errors (diff) | |
download | linux-da45828e2835057045150b318c4fbe9bb91f18dd.tar.xz linux-da45828e2835057045150b318c4fbe9bb91f18dd.zip |
SUNRPC: Clean up soft task error handling
- Ensure that the task aborts the RPC call only when it has actually timed out.
- Ensure that req->rq_majortimeo is initialised correctly.
Signed-off-by: Trond Myklebust <Trond.Myklebust@netapp.com>
Diffstat (limited to 'net/sunrpc/xprt.c')
-rw-r--r-- | net/sunrpc/xprt.c | 8 |
1 files changed, 1 insertions, 7 deletions
diff --git a/net/sunrpc/xprt.c b/net/sunrpc/xprt.c index e4f64fb58ff2..a85f82baefc1 100644 --- a/net/sunrpc/xprt.c +++ b/net/sunrpc/xprt.c @@ -585,13 +585,6 @@ static void xprt_connect_status(struct rpc_task *task) task->tk_pid, -task->tk_status, task->tk_client->cl_server); xprt_release_write(xprt, task); task->tk_status = -EIO; - return; - } - - /* if soft mounted, just cause this RPC to fail */ - if (RPC_IS_SOFT(task)) { - xprt_release_write(xprt, task); - task->tk_status = -EIO; } } @@ -829,6 +822,7 @@ static void xprt_request_init(struct rpc_task *task, struct rpc_xprt *xprt) req->rq_bufsize = 0; req->rq_xid = xprt_alloc_xid(xprt); req->rq_release_snd_buf = NULL; + xprt_reset_majortimeo(req); dprintk("RPC: %4d reserved req %p xid %08x\n", task->tk_pid, req, ntohl(req->rq_xid)); } |