diff options
author | Trond Myklebust <Trond.Myklebust@netapp.com> | 2012-03-10 11:23:15 -0500 |
---|---|---|
committer | Trond Myklebust <Trond.Myklebust@netapp.com> | 2012-03-10 11:54:36 -0500 |
commit | ad1e3968292e3af1c49ccbd0fb7d2674010f8efc (patch) | |
tree | 5eee458017d2deeff73c27740d1bddd742a05990 /fs/nfs/delegation.c | |
parent | 4fc8796d23819da814ec25b7793bde8f104f1a2a (diff) | |
download | blackbird-op-linux-ad1e3968292e3af1c49ccbd0fb7d2674010f8efc.tar.gz blackbird-op-linux-ad1e3968292e3af1c49ccbd0fb7d2674010f8efc.zip |
NFSv4.0: Re-establish the callback channel on NFS4ERR_CB_PATHDOWN
When the NFSv4.0 server tells us that it can no-longer talk to us
on the callback channel, we should attempt a new SETCLIENTID in
order to re-transmit the callback channel information.
Note that as long as we do not change the boot verifier, this is
a safe procedure; the server is required to keep our state.
Also move the function nfs_handle_cb_pathdown to fs/nfs/nfs4state.c,
and change the name in order to mark it as being specific to NFSv4.0.
Signed-off-by: Trond Myklebust <Trond.Myklebust@netapp.com>
Diffstat (limited to 'fs/nfs/delegation.c')
-rw-r--r-- | fs/nfs/delegation.c | 17 |
1 files changed, 0 insertions, 17 deletions
diff --git a/fs/nfs/delegation.c b/fs/nfs/delegation.c index e27c0972f94e..12de88353eeb 100644 --- a/fs/nfs/delegation.c +++ b/fs/nfs/delegation.c @@ -453,11 +453,6 @@ static void nfs_client_mark_return_all_delegation_types(struct nfs_client *clp, rcu_read_unlock(); } -static void nfs_client_mark_return_all_delegations(struct nfs_client *clp) -{ - nfs_client_mark_return_all_delegation_types(clp, FMODE_READ|FMODE_WRITE); -} - static void nfs_delegation_run_state_manager(struct nfs_client *clp) { if (test_bit(NFS4CLNT_DELEGRETURN, &clp->cl_state)) @@ -498,18 +493,6 @@ void nfs_expire_all_delegations(struct nfs_client *clp) nfs_expire_all_delegation_types(clp, FMODE_READ|FMODE_WRITE); } -/** - * nfs_handle_cb_pathdown - return all delegations after NFS4ERR_CB_PATH_DOWN - * @clp: client to process - * - */ -void nfs_handle_cb_pathdown(struct nfs_client *clp) -{ - if (clp == NULL) - return; - nfs_client_mark_return_all_delegations(clp); -} - static void nfs_mark_return_unreferenced_delegations(struct nfs_server *server) { struct nfs_delegation *delegation; |