Re: server 4.1 issues list

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

 



On 2010-10-07 13:54, J. Bruce Fields wrote:
> On Thu, Oct 07, 2010 at 11:53:06AM -0400, bfields wrote:
>> Someone also asked whether we've fixed the backchannel attribute
>> checking.  We haven't, but that should be fairly quick--I'll take a look
>> at it now.
> 
> Actually there's a bit of tedious arithmetic to do here to figure out
> what we need e.g. for the maximum request size.  I'm setting this aside
> for now, so this is up for grabs.

Ack. FWIW :)

> 
> --b.
> 
> diff --git a/fs/nfsd/nfs4state.c b/fs/nfsd/nfs4state.c
> index 6233917..0f8e90b 100644
> --- a/fs/nfsd/nfs4state.c
> +++ b/fs/nfsd/nfs4state.c
> @@ -1493,6 +1493,23 @@ nfsd4_replay_create_session(struct nfsd4_create_session *cr_ses,
>  	return slot->sl_status;
>  }
>  
> +static __be32 verify_backchannel_attributes(struct nfsd4_create_session *cr_ses)
> +{
> +	struct nfsd4_channel_attrs *attrs;
> +
> +	if (!cses->flags & SESSION4_BACK_CHAN)
> +		return nfs_ok;
> +	if (attrs.maxreqs < 1)
> +		return nfserr_inval;
> +	/* XXX: check other fields here; see
> +	 * http://tools.ietf.org/search/rfc5661#section-18.36 to
> +	 * determine when we can modify the fields to be acceptable, and
> +	 * when we must return inval.  We'll need to figure out the
> +	 * things like how large a callback request we need to be able to
> +	 * send. */
> +	return nfs_ok;
> +}
> +
>  __be32
>  nfsd4_create_session(struct svc_rqst *rqstp,
>  		     struct nfsd4_compound_state *cstate,
> @@ -1553,6 +1570,9 @@ nfsd4_create_session(struct svc_rqst *rqstp,
>  	cr_ses->flags &= ~SESSION4_PERSIST;
>  	cr_ses->flags &= ~SESSION4_RDMA;
>  
> +	status = verify_backchannel_attributes(cr_ses);
> +	if (status)
> +		goto out;
>  	status = nfserr_jukebox;
>  	new = alloc_init_session(rqstp, conf, cr_ses);
>  	if (!new)
> --
> 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
=
--
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


[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