Re: [PATCH 1/1] NFSv4.0 reclaim reboot state when re-establishing clientid

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



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...

>  	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
��.n��������+%������w��{.n�����{��w���jg��������ݢj����G�������j:+v���w�m������w�������h�����٥



[Index of Archives]     [Linux Filesystem Development]     [Linux USB Development]     [Linux Media Development]     [Video for Linux]     [Linux NILFS]     [Linux Audio Users]     [Yosemite Info]     [Linux SCSI]

  Powered by Linux