recovery: trigger recovery on RESTART_RECLAIM_NEEDED
adds a check for sequence flag SEQ4_STATUS_RESTART_RECLAIM_NEEDED in nfs41_recover_sequence_flags(). if other _STATE_REVOKED flags are set, call nfs41_client_state_revoked() as normal but follow it up with a RECLAIM_COMPLETE. otherwise, reclaim all locks with nfs41_recover_client_state(). like other callers of nfs41_recover_client_state(), we need to handle BADSESSION errors because the recovery operations are sent with try_recovery=FALSE. because this logic is similar to our default NFS4ERR_BADSESSION handling, i moved the common code into a new nfs41_recover_session() function in recovery.c Signed-off-by: Casey Bodley <cbodley@citi.umich.edu>
This commit is contained in:
parent
ab51beeb98
commit
6c1c300a3b
3 changed files with 62 additions and 30 deletions
|
|
@ -39,6 +39,10 @@ void nfs41_recovery_finish(
|
|||
IN nfs41_client *client);
|
||||
|
||||
|
||||
int nfs41_recover_session(
|
||||
IN nfs41_session *session,
|
||||
IN bool_t client_state_lost);
|
||||
|
||||
void nfs41_recover_sequence_flags(
|
||||
IN nfs41_session *session,
|
||||
IN uint32_t flags);
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue