Re: [PATCH v4 13/14] NFSD: Add a "default" block size

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



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>





[Index of Archives]     [Linux Filesystem Development]     [Linux USB Development]     [Linux Media Development]     [Video for Linux]     [Linux NILFS]     [Linux Audio Users]     [Yosemite Info]     [Linux SCSI]

  Powered by Linux