diff options
author | Scott Mayhew <smayhew@redhat.com> | 2019-05-06 18:59:05 +0300 |
---|---|---|
committer | Anna Schumaker <Anna.Schumaker@Netapp.com> | 2019-05-09 23:26:57 +0300 |
commit | 8ca017c8cee3aa6a37ddf1db7fd04c54536a0ef0 (patch) | |
tree | 68a08c62f5e92857cfdff293fd064b460524756b /fs/nfs/delegation.c | |
parent | fe31ce83cbac7adcaa629b59179f502981be5f8b (diff) | |
download | linux-8ca017c8cee3aa6a37ddf1db7fd04c54536a0ef0.tar.xz |
NFSv4: don't mark all open state for recovery when handling recallable state revoked flag
Only delegations and layouts can be recalled, so it shouldn't be
necessary to recover all opens when handling the status bit
SEQ4_STATUS_RECALLABLE_STATE_REVOKED. We'll still wind up calling
nfs41_open_expired() when a TEST_STATEID returns NFS4ERR_DELEG_REVOKED.
Signed-off-by: Scott Mayhew <smayhew@redhat.com>
Reviewed-by: Trond Myklebust <trond.myklebust@hammerspace.com>
Signed-off-by: Anna Schumaker <Anna.Schumaker@Netapp.com>
Diffstat (limited to 'fs/nfs/delegation.c')
-rw-r--r-- | fs/nfs/delegation.c | 12 |
1 files changed, 12 insertions, 0 deletions
diff --git a/fs/nfs/delegation.c b/fs/nfs/delegation.c index 2f6b447cdd82..8b78274e3e56 100644 --- a/fs/nfs/delegation.c +++ b/fs/nfs/delegation.c @@ -1034,6 +1034,18 @@ void nfs_mark_test_expired_all_delegations(struct nfs_client *clp) } /** + * nfs_test_expired_all_delegations - test all delegations for a client + * @clp: nfs_client to process + * + * Helper for handling "recallable state revoked" status from server. + */ +void nfs_test_expired_all_delegations(struct nfs_client *clp) +{ + nfs_mark_test_expired_all_delegations(clp); + nfs4_schedule_state_manager(clp); +} + +/** * nfs_reap_expired_delegations - reap expired delegations * @clp: nfs_client to process * |