On Tue, Jun 16, 2009 at 04:20:33AM +0300, Benny Halevy wrote: > From: Andy Adamson <andros@xxxxxxxxxx> > > The size of the nfsd4_op array in nfsd4_compoundargs determines the > supported maximum number of operations. This is another one that is a clear straightfoward bugfix to existing code, so please put it right up at the front of the patch series. (ALso a comment that more clearly explains the problem would help, say, like: "We're returning NFSD_MAX_OPS_PER_COMPOUND = 16 to 4.1 clients, but the limit the server actually enforces (in nfsd4_decode_compound) is 8. Fix the value of NFSD_MAX_OPS_PER_COMPOUND to return the correct value to 4.1 clients." ) --b. > > Signed-off-by: Andy Adamson <andros@xxxxxxxxxx> > Signed-off-by: Benny Halevy <bhalevy@xxxxxxxxxxx> > --- > include/linux/nfsd/state.h | 3 +-- > include/linux/nfsd/xdr4.h | 2 +- > 2 files changed, 2 insertions(+), 3 deletions(-) > > diff --git a/include/linux/nfsd/state.h b/include/linux/nfsd/state.h > index aea8137..093f165 100644 > --- a/include/linux/nfsd/state.h > +++ b/include/linux/nfsd/state.h > @@ -94,8 +94,7 @@ struct nfs4_cb_conn { > > #define NFSD_MAX_SLOTS_PER_SESSION 16 > #define NFSD_SLOT_CACHE_SIZE 512 > -/* Maximum number of operations per session compound */ > -#define NFSD_MAX_OPS_PER_COMPOUND 16 > +#define NFSD_MAX_OPS_PER_COMPOUND 8 > > struct nfsd4_slot { > bool sl_inuse; > diff --git a/include/linux/nfsd/xdr4.h b/include/linux/nfsd/xdr4.h > index 84ac4bb..d99c8fe 100644 > --- a/include/linux/nfsd/xdr4.h > +++ b/include/linux/nfsd/xdr4.h > @@ -446,7 +446,7 @@ struct nfsd4_compoundargs { > u32 minorversion; > u32 opcnt; > struct nfsd4_op *ops; > - struct nfsd4_op iops[8]; > + struct nfsd4_op iops[NFSD_MAX_OPS_PER_COMPOUND]; > }; > > struct nfsd4_compoundres { > -- > 1.6.3 > -- 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