[pnfs] [PATCH] no putrootfh or getattr to DS

Iyer, Rahul Rahul.Iyer at netapp.com
Fri Jul 27 20:03:26 EDT 2007


 

> -----Original Message-----
> From: Marc Eshel [mailto:eshel at almaden.ibm.com] 
> Sent: Friday, July 27, 2007 4:55 PM
> To: andros at citi.umich.edu
> Cc: pnfs at linux-nfs.org
> Subject: [pnfs] [PATCH] no putrootfh or getattr to DS
> 
> From: Marc Eshel <eshel at almaden.ibm.com>
> 
> Remove get_lease_time call when setting client for DS connection.
> This call was doing PUTROOTFH + GETATTR to the DS which is 
> not allowed.
> ---
> 
>  fs/nfs/nfs4proc.c |   12 ++++++++----
>  1 files changed, 8 insertions(+), 4 deletions(-)
> 
> diff --git a/fs/nfs/nfs4proc.c b/fs/nfs/nfs4proc.c
> index 0a568a4..2f2a257 100644
> --- a/fs/nfs/nfs4proc.c
> +++ b/fs/nfs/nfs4proc.c
> @@ -5739,11 +5739,15 @@ int nfs41_proc_setup_session(struct nfs4
>  	clp->cl_session->expired = 0;
>  	clp->cl_session->client = clp;
>  
> -	status = nfs4_proc_get_lease_time(clp, &fsinfo);
> +        if (!(clp->cl_exchange_flags & EXCHGID4_FLAG_USE_PNFS_DS)) {
> +		status = nfs4_proc_get_lease_time(clp, &fsinfo);
> +
> +		if (status)
> +			goto out_free;
> +	}
> +	else
> +		fsinfo.lease_time = 30; // do we need lease 
> time on DS ???
							^^^^^^^^^^
							No, we don't.
The clientid on the DS is a fake clientid, used only to 
Establish a session.
Regards
Rahul


>  
> -	if (status) 
> -		goto out_free;
> -	
>  	/* Update lease time and schedule renewal */
>  	spin_lock(&clp->cl_lock);
>  	clp->cl_lease_time = fsinfo.lease_time * HZ;
> _______________________________________________
> pNFS mailing list
> pNFS at linux-nfs.org
> http://linux-nfs.org/cgi-bin/mailman/listinfo/pnfs
> 


More information about the pNFS mailing list