|
@@ -4173,23 +4173,18 @@ static const struct rpc_call_ops nfs4_recover_lock_ops = {
|
|
|
|
|
|
static void nfs4_handle_setlk_error(struct nfs_server *server, struct nfs4_lock_state *lsp, int new_lock_owner, int error)
|
|
|
{
|
|
|
- struct nfs_client *clp = server->nfs_client;
|
|
|
- struct nfs4_state *state = lsp->ls_state;
|
|
|
-
|
|
|
switch (error) {
|
|
|
case -NFS4ERR_ADMIN_REVOKED:
|
|
|
case -NFS4ERR_BAD_STATEID:
|
|
|
- case -NFS4ERR_EXPIRED:
|
|
|
+ lsp->ls_seqid.flags &= ~NFS_SEQID_CONFIRMED;
|
|
|
if (new_lock_owner != 0 ||
|
|
|
(lsp->ls_flags & NFS_LOCK_INITIALIZED) != 0)
|
|
|
- nfs4_state_mark_reclaim_nograce(clp, state);
|
|
|
- lsp->ls_seqid.flags &= ~NFS_SEQID_CONFIRMED;
|
|
|
+ nfs4_schedule_stateid_recovery(server, lsp->ls_state);
|
|
|
break;
|
|
|
case -NFS4ERR_STALE_STATEID:
|
|
|
- if (new_lock_owner != 0 ||
|
|
|
- (lsp->ls_flags & NFS_LOCK_INITIALIZED) != 0)
|
|
|
- nfs4_state_mark_reclaim_reboot(clp, state);
|
|
|
lsp->ls_seqid.flags &= ~NFS_SEQID_CONFIRMED;
|
|
|
+ case -NFS4ERR_EXPIRED:
|
|
|
+ nfs4_schedule_lease_recovery(server->nfs_client);
|
|
|
};
|
|
|
}
|
|
|
|