From: Chuck Lever Date: Mon, 28 Apr 2025 19:37:01 +0000 (-0400) Subject: NFSD: Add a "default" block size X-Git-Tag: v6.16-rc1~138^2~2 X-Git-Url: https://git.kernel.dk/?a=commitdiff_plain;h=8a81f16de64fc4e654a2a85ec46c57a8e43819b8;p=linux-2.6-block.git NFSD: Add a "default" block size 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. Reviewed-by: NeilBrown Signed-off-by: Chuck Lever --- diff --git a/fs/nfsd/nfsd.h b/fs/nfsd/nfsd.h index 6428a431d765..1bfd0b4e9af7 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 8ed143ef8b41..82b0111ac469 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;