On Mon, 2025-04-28 at 15:37 -0400, cel@xxxxxxxxxx wrote: > From: Chuck Lever <chuck.lever@xxxxxxxxxx> > > We'd like to increase the maximum r/wsize that NFSD can support, > but without introducing possible regressions. So let's add a > default setting of 1MB. A subsequent patch will raise the > maximum value but leave the default alone. > > No behavior change is expected. > > Signed-off-by: Chuck Lever <chuck.lever@xxxxxxxxxx> > --- > fs/nfsd/nfsd.h | 9 +++++++-- > fs/nfsd/nfssvc.c | 2 +- > 2 files changed, 8 insertions(+), 3 deletions(-) > > diff --git a/fs/nfsd/nfsd.h b/fs/nfsd/nfsd.h > index 2c85b3efe977..614971a700d8 100644 > --- a/fs/nfsd/nfsd.h > +++ b/fs/nfsd/nfsd.h > @@ -44,9 +44,14 @@ bool nfsd_support_version(int vers); > #include "stats.h" > > /* > - * Maximum blocksizes supported by daemon under various circumstances. > + * Default and maximum payload size (NFS READ or WRITE), in bytes. > + * The default is historical, and the maximum is an implementation > + * limit. > */ > -#define NFSSVC_MAXBLKSIZE RPCSVC_MAXPAYLOAD > +enum { > + NFSSVC_DEFBLKSIZE = 1 * 1024 * 1024, > + NFSSVC_MAXBLKSIZE = RPCSVC_MAXPAYLOAD, > +}; > > struct readdir_cd { > __be32 err; /* 0, nfserr, or nfserr_eof */ > diff --git a/fs/nfsd/nfssvc.c b/fs/nfsd/nfssvc.c > index 9b3d6cff0e1e..692d2ef30db1 100644 > --- a/fs/nfsd/nfssvc.c > +++ b/fs/nfsd/nfssvc.c > @@ -582,7 +582,7 @@ static int nfsd_get_default_max_blksize(void) > */ > target >>= 12; > > - ret = NFSSVC_MAXBLKSIZE; > + ret = NFSSVC_DEFBLKSIZE; > while (ret > target && ret >= 8*1024*2) > ret /= 2; > return ret; Reviewed-by: Jeff Layton <jlayton@xxxxxxxxxx>