recovery: handle state revocation flags in SEQUENCE response
if any of (SEQ4_STATUS_EXPIRED_ALL_STATE_REVOKED | SEQ4_STATUS_EXPIRED_SOME_STATE_REVOKED | SEQ4_STATUS_ADMIN_STATE_REVOKED) are set in the session flags returned by SEQUENCE: * enter client recovery mode * determine which state was lost with TEST_STATEID (consider all delegations, opens, locks, and layouts) * send FREE_STATEID for each stateid revoked * recall all layouts and forget devices (required by 12.7.2: Dealing with Lease Expiration on the Client) * call recover_delegation(), recover_open() or recover_locks() to reclaim each lock Signed-off-by: Casey Bodley <cbodley@citi.umich.edu>
This commit is contained in:
parent
ed2ec18d2d
commit
78a0bb0ac5
3 changed files with 195 additions and 17 deletions
|
|
@ -42,6 +42,11 @@ int nfs41_recover_client_state(
|
|||
IN nfs41_session *session,
|
||||
IN nfs41_client *client);
|
||||
|
||||
void nfs41_client_state_revoked(
|
||||
IN nfs41_session *session,
|
||||
IN nfs41_client *client,
|
||||
IN uint32_t revoked);
|
||||
|
||||
struct __nfs_argop4;
|
||||
bool_t nfs41_recover_stateid(
|
||||
IN nfs41_session *session,
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue