diff options
author | Chuck Lever <chuck.lever@oracle.com> | 2025-04-28 15:37:01 -0400 |
---|---|---|
committer | Chuck Lever <chuck.lever@oracle.com> | 2025-05-15 16:16:28 -0400 |
commit | 8a81f16de64fc4e654a2a85ec46c57a8e43819b8 (patch) | |
tree | b53aab7e677da0ab425abbd7cd136e73ddc510e8 | |
parent | cdc29154d327534c50d65e1a9ad7023a03b21034 (diff) |
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 <neil@brown.name>
Signed-off-by: Chuck Lever <chuck.lever@oracle.com>
-rw-r--r-- | fs/nfsd/nfsd.h | 9 | ||||
-rw-r--r-- | 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 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; |