Commit 4099287f authored by Trond Myklebust's avatar Trond Myklebust

NFSv4.1: Handle SEQ4_STATUS_RECALLABLE_STATE_REVOKED status bit correctly

Try to handle this for now by invalidating all outstanding layouts for this
server and then testing all the open+lock+delegation stateids.
At some later stage, we may want to optimise by separating out the testing of
delegation stateids only, and adding testing of layout stateids.
Signed-off-by: default avatarTrond Myklebust <trond.myklebust@primarydata.com>
parent 8b895ce6
...@@ -2207,8 +2207,10 @@ static void nfs41_handle_some_state_revoked(struct nfs_client *clp) ...@@ -2207,8 +2207,10 @@ static void nfs41_handle_some_state_revoked(struct nfs_client *clp)
static void nfs41_handle_recallable_state_revoked(struct nfs_client *clp) static void nfs41_handle_recallable_state_revoked(struct nfs_client *clp)
{ {
/* This will need to handle layouts too */ /* FIXME: For now, we destroy all layouts. */
nfs_expire_all_delegations(clp); pnfs_destroy_all_layouts(clp);
/* FIXME: For now, we test all delegations+open state+locks. */
nfs41_handle_some_state_revoked(clp);
dprintk("%s: Recallable state revoked on server %s!\n", __func__, dprintk("%s: Recallable state revoked on server %s!\n", __func__,
clp->cl_hostname); clp->cl_hostname);
} }
......
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