On Mon, Oct 1, 2012 at 6:15 PM, Myklebust, Trond <Trond.Myklebust@xxxxxxxxxx> wrote: > On Fri, 2012-09-28 at 17:05 -0400, andros@xxxxxxxxxx wrote: >> From: Andy Adamson <andros@xxxxxxxxxx> >> >> We should always reclaim state when the lease and therefore the clientid >> is expired. >> >> Signed-off-by: Andy Adamson <andros@xxxxxxxxxx> >> --- >> fs/nfs/nfs4state.c | 6 ++++-- >> 1 files changed, 4 insertions(+), 2 deletions(-) >> >> diff --git a/fs/nfs/nfs4state.c b/fs/nfs/nfs4state.c >> index a5331ec..134323a 100644 >> --- a/fs/nfs/nfs4state.c >> +++ b/fs/nfs/nfs4state.c >> @@ -1600,8 +1600,8 @@ out: >> return nfs4_recovery_handle_error(clp, status); >> } >> >> -/* Set NFS4CLNT_LEASE_EXPIRED for all v4.0 errors and for recoverable errors >> - * on EXCHANGE_ID for v4.1 >> +/* Set NFS4CLNT_LEASE_EXPIRED and reclaim reboot state for all v4.0 errors >> + * and for recoverable errors on EXCHANGE_ID for v4.1 >> */ >> static int nfs4_handle_reclaim_lease_error(struct nfs_client *clp, int status) >> { >> @@ -1647,6 +1647,8 @@ static int nfs4_handle_reclaim_lease_error(struct nfs_client *clp, int status) >> return status; >> } >> set_bit(NFS4CLNT_LEASE_EXPIRED, &clp->cl_state); >> + nfs4_state_clear_reclaim_reboot(clp); >> + nfs4_state_start_reclaim_reboot(clp); > > This is probably correct for NFS4ERR_STALE_CLIENTID, but certainly not > for NFS4ERR_SEQ_MISORDERED, or NFS4ERR_DELAY... > Oops - will resend with fix... -->Andy >> dprintk("%s: handled error %d for server %s\n", __func__, status, >> clp->cl_hostname); >> return 0; > > -- > Trond Myklebust > Linux NFS client maintainer > > NetApp > Trond.Myklebust@xxxxxxxxxx > www.netapp.com -- To unsubscribe from this list: send the line "unsubscribe linux-nfs" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html