Commit 00a6e7bb authored by Chuck Lever's avatar Chuck Lever Committed by Trond Myklebust

SUNRPC: RPC client should retry with different versions of rpcbind

Signed-off-by: default avatarChuck Lever <chuck.lever@oracle.com>
Signed-off-by: default avatarTrond Myklebust <Trond.Myklebust@netapp.com>
parent 4c2eaf07
...@@ -1734,6 +1734,18 @@ config SUNRPC ...@@ -1734,6 +1734,18 @@ config SUNRPC
config SUNRPC_GSS config SUNRPC_GSS
tristate tristate
config SUNRPC_BIND34
bool "Support for rpcbind versions 3 & 4 (EXPERIMENTAL)"
depends on SUNRPC && EXPERIMENTAL
help
Provides kernel support for querying rpcbind servers via versions 3
and 4 of the rpcbind protocol. The kernel automatically falls back
to version 2 if a remote rpcbind service does not support versions
3 or 4.
If unsure, say N to get traditional behavior (version 2 rpcbind
requests only).
config RPCSEC_GSS_KRB5 config RPCSEC_GSS_KRB5
tristate "Secure RPC: Kerberos V mechanism (EXPERIMENTAL)" tristate "Secure RPC: Kerberos V mechanism (EXPERIMENTAL)"
depends on SUNRPC && EXPERIMENTAL depends on SUNRPC && EXPERIMENTAL
......
...@@ -902,9 +902,11 @@ call_bind_status(struct rpc_task *task) ...@@ -902,9 +902,11 @@ call_bind_status(struct rpc_task *task)
task->tk_pid); task->tk_pid);
break; break;
case -EPROTONOSUPPORT: case -EPROTONOSUPPORT:
dprintk("RPC: %5u remote rpcbind version 2 unavailable\n", dprintk("RPC: %5u remote rpcbind version unavailable, retrying\n",
task->tk_pid); task->tk_pid);
break; task->tk_status = 0;
task->tk_action = call_bind;
return;
default: default:
dprintk("RPC: %5u unrecognized rpcbind error (%d)\n", dprintk("RPC: %5u unrecognized rpcbind error (%d)\n",
task->tk_pid, -task->tk_status); task->tk_pid, -task->tk_status);
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment