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>
This commit is contained in:
Chuck Lever 2025-04-28 15:37:01 -04:00
parent cdc29154d3
commit 8a81f16de6
2 changed files with 8 additions and 3 deletions

View File

@ -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 */

View File

@ -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;