Skip to content

Commit

Permalink
nfs41: Mark stateids in need of reclaim if state manager gets stale c…
Browse files Browse the repository at this point in the history
…lientid

The state manager was not marking the stateids as needing to be reclaimed
after reestablishing the clientid.

Signed-off-by: Ricardo Labiaga <Ricardo.Labiaga@netapp.com>
Signed-off-by: Trond Myklebust <Trond.Myklebust@netapp.com>
  • Loading branch information
Ricardo Labiaga authored and Trond Myklebust committed Dec 7, 2009
1 parent 0110ee1 commit f455848
Showing 1 changed file with 2 additions and 10 deletions.
12 changes: 2 additions & 10 deletions fs/nfs/nfs4state.c
Original file line number Diff line number Diff line change
Expand Up @@ -1255,14 +1255,6 @@ void nfs41_handle_sequence_flag_errors(struct nfs_client *clp, u32 flags)
nfs_expire_all_delegations(clp);
}

static void nfs4_session_recovery_handle_error(struct nfs_client *clp, int err)
{
switch (err) {
case -NFS4ERR_STALE_CLIENTID:
set_bit(NFS4CLNT_LEASE_EXPIRED, &clp->cl_state);
}
}

static int nfs4_reset_session(struct nfs_client *clp)
{
struct nfs4_session *ses = clp->cl_session;
Expand All @@ -1275,14 +1267,14 @@ static int nfs4_reset_session(struct nfs_client *clp)
status = nfs4_proc_destroy_session(clp->cl_session);
if (status && status != -NFS4ERR_BADSESSION &&
status != -NFS4ERR_DEADSESSION) {
nfs4_session_recovery_handle_error(clp, status);
status = nfs4_recovery_handle_error(clp, status);
goto out;
}

memset(clp->cl_session->sess_id.data, 0, NFS4_MAX_SESSIONID_LEN);
status = nfs4_proc_create_session(clp);
if (status)
nfs4_session_recovery_handle_error(clp, status);
status = nfs4_recovery_handle_error(clp, status);

out:
/*
Expand Down

0 comments on commit f455848

Please sign in to comment.