Re: [PATCH] nfs41: Verify channel's attributes accordingly to RFC

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

 



On Wed, 2012-02-15 at 18:13 +0400, Vitaliy Gusev wrote:
> >From RFC5661, 18.36.3:
> 
>    ca_maxoperations:
> 
>          For the backchannel, the server MUST
>          NOT change the value the client offers.  For the fore channel,
>          the server MAY change the requested value.
> 
>    ca_maxrequests:
> 
>          For the backchannel, the server MUST NOT change the
>          value the client offers.  For the fore channel, the server MAY
>          change the requested value.
> 
> Signed-off-by: Vitaliy Gusev <gusev.vitaliy@xxxxxxxxxxx>
> ---
>  fs/nfs/nfs4proc.c |    6 +++---
>  1 files changed, 3 insertions(+), 3 deletions(-)
> 
> diff --git a/fs/nfs/nfs4proc.c b/fs/nfs/nfs4proc.c
> index 5da5355..b144ec3 100644
> --- a/fs/nfs/nfs4proc.c
> +++ b/fs/nfs/nfs4proc.c
> @@ -5197,7 +5197,7 @@ static int nfs4_verify_fore_channel_attrs(struct nfs41_create_session_args *args
>  	 */
>  	if (rcvd->max_ops < sent->max_ops)
>  		return -EINVAL;
> -	if (rcvd->max_reqs == 0)
> +	if (rcvd->max_reqs == 0 || rcvd->max_reqs > NFS4_MAX_SLOT_TABLE)
>  		return -EINVAL;

This looks incorrect.

If the server offers > NFS4_MAX_SLOT_TABLE slots, the client shouldn't
be calling that an error. It should just limit its usage to the first
NFS4_MAX_SLOT_TABLE slots.

>  	return 0;
>  }
> @@ -5214,9 +5214,9 @@ static int nfs4_verify_back_channel_attrs(struct nfs41_create_session_args *args
>  	if (rcvd->max_resp_sz_cached > sent->max_resp_sz_cached)
>  		return -EINVAL;
>  	/* These would render the backchannel useless: */
> -	if (rcvd->max_ops  == 0)
> +	if (rcvd->max_ops != sent->max_ops)
>  		return -EINVAL;
> -	if (rcvd->max_reqs == 0)
> +	if (rcvd->max_reqs != sent->max_reqs)
>  		return -EINVAL;

ACK on this hunk...


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