nfsd4: allow 4.0 clients to change callback path
authorJ. Bruce Fields <bfields@citi.umich.edu>
Mon, 8 Mar 2010 04:39:01 +0000 (23:39 -0500)
committerJ. Bruce Fields <bfields@citi.umich.edu>
Thu, 22 Apr 2010 15:34:02 +0000 (11:34 -0400)
commit4b21d0defcc9680da8a694e92d5fe8eb668c2c0b
tree35684f814bbbc428236e0e542b292521e59f06e3
parent2bf23875f55af6038a5d1c164a52cec4c24609ba
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>
fs/nfsd/nfs4callback.c
fs/nfsd/nfs4state.c
fs/nfsd/state.h