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