| From 2aca5b869ace67a63aab895659e5dc14c33a4d6e Mon Sep 17 00:00:00 2001 |
| From: Trond Myklebust <trond.myklebust@primarydata.com> |
| Date: Wed, 24 Sep 2014 22:35:58 -0400 |
| Subject: SUNRPC: Add missing support for RPC_CLNT_CREATE_NO_RETRANS_TIMEOUT |
| |
| From: Trond Myklebust <trond.myklebust@primarydata.com> |
| |
| commit 2aca5b869ace67a63aab895659e5dc14c33a4d6e upstream. |
| |
| The flag RPC_CLNT_CREATE_NO_RETRANS_TIMEOUT was intended introduced in |
| order to allow NFSv4 clients to disable resend timeouts. Since those |
| cause the RPC layer to break the connection, they mess up the duplicate |
| reply caches that remain indexed on the port number in NFSv4.. |
| |
| This patch includes the code that was missing in the original to |
| set the appropriate flag in struct rpc_clnt, when the caller of |
| rpc_create() sets RPC_CLNT_CREATE_NO_RETRANS_TIMEOUT. |
| |
| Fixes: 8a19a0b6cb2e (SUNRPC: Add RPC task and client level options to...) |
| Signed-off-by: Trond Myklebust <trond.myklebust@primarydata.com> |
| Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org> |
| |
| --- |
| net/sunrpc/clnt.c | 3 +++ |
| 1 file changed, 3 insertions(+) |
| |
| --- a/net/sunrpc/clnt.c |
| +++ b/net/sunrpc/clnt.c |
| @@ -461,6 +461,8 @@ struct rpc_clnt *rpc_create_xprt(struct |
| |
| if (args->flags & RPC_CLNT_CREATE_AUTOBIND) |
| clnt->cl_autobind = 1; |
| + if (args->flags & RPC_CLNT_CREATE_NO_RETRANS_TIMEOUT) |
| + clnt->cl_noretranstimeo = 1; |
| if (args->flags & RPC_CLNT_CREATE_DISCRTRY) |
| clnt->cl_discrtry = 1; |
| if (!(args->flags & RPC_CLNT_CREATE_QUIET)) |
| @@ -579,6 +581,7 @@ static struct rpc_clnt *__rpc_clone_clie |
| /* Turn off autobind on clones */ |
| new->cl_autobind = 0; |
| new->cl_softrtry = clnt->cl_softrtry; |
| + new->cl_noretranstimeo = clnt->cl_noretranstimeo; |
| new->cl_discrtry = clnt->cl_discrtry; |
| new->cl_chatty = clnt->cl_chatty; |
| return new; |