Re: [PATCH 37/40] pnfs-submit wave3 send zero stateid seqid on v4.1 i/o

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

 



On 2011-02-04 23:33, andros@xxxxxxxxxx wrote:
> From: Andy Adamson <andros@xxxxxxxxxx>
> 
> Data servers require a zero stateid seqid, and there is no advantage to not
> doing the same for all NFSv4.1
> 
> Signed-off-by: Andy Adamson <andros@xxxxxxxxxx>
> ---
>  fs/nfs/nfs4xdr.c |   10 +++++++---
>  1 files changed, 7 insertions(+), 3 deletions(-)
> 
> diff --git a/fs/nfs/nfs4xdr.c b/fs/nfs/nfs4xdr.c
> index 4e2c168..2380c45 100644
> --- a/fs/nfs/nfs4xdr.c
> +++ b/fs/nfs/nfs4xdr.c
> @@ -1384,7 +1384,7 @@ static void encode_putrootfh(struct xdr_stream *xdr, struct compound_hdr *hdr)
>  	hdr->replen += decode_putrootfh_maxsz;
>  }
>  
> -static void encode_stateid(struct xdr_stream *xdr, const struct nfs_open_context *ctx, const struct nfs_lock_context *l_ctx)
> +static void encode_stateid(struct xdr_stream *xdr, const struct nfs_open_context *ctx, const struct nfs_lock_context *l_ctx, int zero_seqid)

nit: how about bool rather than int zero_stateid?

Benny

>  {
>  	nfs4_stateid stateid;
>  	__be32 *p;
> @@ -1392,6 +1392,8 @@ static void encode_stateid(struct xdr_stream *xdr, const struct nfs_open_context
>  	p = reserve_space(xdr, NFS4_STATEID_SIZE);
>  	if (ctx->state != NULL) {
>  		nfs4_copy_stateid(&stateid, ctx->state, l_ctx->lockowner, l_ctx->pid);
> +		if (zero_seqid)
> +			stateid.stateid.seqid = 0;
>  		xdr_encode_opaque_fixed(p, stateid.data, NFS4_STATEID_SIZE);
>  	} else
>  		xdr_encode_opaque_fixed(p, zero_stateid.data, NFS4_STATEID_SIZE);
> @@ -1404,7 +1406,8 @@ static void encode_read(struct xdr_stream *xdr, const struct nfs_readargs *args,
>  	p = reserve_space(xdr, 4);
>  	*p = cpu_to_be32(OP_READ);
>  
> -	encode_stateid(xdr, args->context, args->lock_context);
> +	encode_stateid(xdr, args->context, args->lock_context,
> +		       hdr->minorversion);
>  
>  	p = reserve_space(xdr, 12);
>  	p = xdr_encode_hyper(p, args->offset);
> @@ -1592,7 +1595,8 @@ static void encode_write(struct xdr_stream *xdr, const struct nfs_writeargs *arg
>  	p = reserve_space(xdr, 4);
>  	*p = cpu_to_be32(OP_WRITE);
>  
> -	encode_stateid(xdr, args->context, args->lock_context);
> +	encode_stateid(xdr, args->context, args->lock_context,
> +		       hdr->minorversion);
>  
>  	p = reserve_space(xdr, 16);
>  	p = xdr_encode_hyper(p, args->offset);
--
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