diff options
author | J. Bruce Fields <bfields@citi.umich.edu> | 2010-03-07 23:39:01 -0500 |
---|---|---|
committer | J. Bruce Fields <bfields@citi.umich.edu> | 2010-04-22 11:34:02 -0400 |
commit | 4b21d0defcc9680da8a694e92d5fe8eb668c2c0b (patch) | |
tree | 35684f814bbbc428236e0e542b292521e59f06e3 /fs/nfsd/state.h | |
parent | 2bf23875f55af6038a5d1c164a52cec4c24609ba (diff) |
nfsd4: allow 4.0 clients to change callback path
The rfc allows a client to change the callback parameters, but we didn't
previously implement it.
Teach the callbacks to rerun themselves (by placing themselves on a
workqueue) when they recognize that their rpc task has been killed and
that the callback connection has changed.
Then we can change the callback connection by setting up a new rpc
client, modifying the nfs4 client to point at it, waiting for any work
in progress to complete, and then shutting down the old client.
Signed-off-by: J. Bruce Fields <bfields@citi.umich.edu>
Diffstat (limited to 'fs/nfsd/state.h')
-rw-r--r-- | fs/nfsd/state.h | 2 |
1 files changed, 1 insertions, 1 deletions
diff --git a/fs/nfsd/state.h b/fs/nfsd/state.h index cf43812e6da5..98836fd87f69 100644 --- a/fs/nfsd/state.h +++ b/fs/nfsd/state.h | |||
@@ -390,7 +390,7 @@ extern int nfs4_in_grace(void); | |||
390 | extern __be32 nfs4_check_open_reclaim(clientid_t *clid); | 390 | extern __be32 nfs4_check_open_reclaim(clientid_t *clid); |
391 | extern void nfs4_free_stateowner(struct kref *kref); | 391 | extern void nfs4_free_stateowner(struct kref *kref); |
392 | extern int set_callback_cred(void); | 392 | extern int set_callback_cred(void); |
393 | extern void nfsd4_probe_callback(struct nfs4_client *clp); | 393 | extern void nfsd4_probe_callback(struct nfs4_client *clp, struct nfs4_cb_conn *); |
394 | extern void nfsd4_do_callback_rpc(struct work_struct *); | 394 | extern void nfsd4_do_callback_rpc(struct work_struct *); |
395 | extern void nfsd4_cb_recall(struct nfs4_delegation *dp); | 395 | extern void nfsd4_cb_recall(struct nfs4_delegation *dp); |
396 | extern int nfsd4_create_callback_queue(void); | 396 | extern int nfsd4_create_callback_queue(void); |