diff options
author | Chuck Lever <cel@netapp.com> | 2006-01-03 03:55:50 -0500 |
---|---|---|
committer | Trond Myklebust <Trond.Myklebust@netapp.com> | 2006-01-06 14:58:56 -0500 |
commit | 35f5a422ce1af836007f811b613c440d0e348e06 (patch) | |
tree | 25aac5cccce27a6ed5ebb4e161f813af2adbaf56 /fs/lockd/host.c | |
parent | 02107148349f31eee7c0fb06fd7a880df73dbd20 (diff) |
SUNRPC: new interface to force an RPC rebind
We'd like to hide fields in rpc_xprt and rpc_clnt from upper layer protocols.
Start by creating an API to force RPC rebind, replacing logic that simply
sets cl_port to zero.
Test-plan:
Destructive testing (unplugging the network temporarily). Connectathon
with UDP and TCP. NFSv2/3 and NFSv4 mounting should be carefully checked.
Probably need to rig a server where certain services aren't running, or
that returns an error for some typical operation.
Signed-off-by: Chuck Lever <cel@netapp.com>
Signed-off-by: Trond Myklebust <Trond.Myklebust@netapp.com>
Diffstat (limited to 'fs/lockd/host.c')
-rw-r--r-- | fs/lockd/host.c | 4 |
1 files changed, 2 insertions, 2 deletions
diff --git a/fs/lockd/host.c b/fs/lockd/host.c index c4c8601096e0..82f7a0b1d8ae 100644 --- a/fs/lockd/host.c +++ b/fs/lockd/host.c | |||
@@ -177,7 +177,7 @@ nlm_bind_host(struct nlm_host *host) | |||
177 | if ((clnt = host->h_rpcclnt) != NULL) { | 177 | if ((clnt = host->h_rpcclnt) != NULL) { |
178 | xprt = clnt->cl_xprt; | 178 | xprt = clnt->cl_xprt; |
179 | if (time_after_eq(jiffies, host->h_nextrebind)) { | 179 | if (time_after_eq(jiffies, host->h_nextrebind)) { |
180 | clnt->cl_port = 0; | 180 | rpc_force_rebind(clnt); |
181 | host->h_nextrebind = jiffies + NLM_HOST_REBIND; | 181 | host->h_nextrebind = jiffies + NLM_HOST_REBIND; |
182 | dprintk("lockd: next rebind in %ld jiffies\n", | 182 | dprintk("lockd: next rebind in %ld jiffies\n", |
183 | host->h_nextrebind - jiffies); | 183 | host->h_nextrebind - jiffies); |
@@ -217,7 +217,7 @@ nlm_rebind_host(struct nlm_host *host) | |||
217 | { | 217 | { |
218 | dprintk("lockd: rebind host %s\n", host->h_name); | 218 | dprintk("lockd: rebind host %s\n", host->h_name); |
219 | if (host->h_rpcclnt && time_after_eq(jiffies, host->h_nextrebind)) { | 219 | if (host->h_rpcclnt && time_after_eq(jiffies, host->h_nextrebind)) { |
220 | host->h_rpcclnt->cl_port = 0; | 220 | rpc_force_rebind(host->h_rpcclnt); |
221 | host->h_nextrebind = jiffies + NLM_HOST_REBIND; | 221 | host->h_nextrebind = jiffies + NLM_HOST_REBIND; |
222 | } | 222 | } |
223 | } | 223 | } |