Re: git: b92b9da33006 - main - nfsd: Allow vfs.nfsd.srvmaxio to be up to 4Mbytes
- In reply to: Oliver Pinter : "Re: git: b92b9da33006 - main - nfsd: Allow vfs.nfsd.srvmaxio to be up to 4Mbytes"
- Go to: [ bottom of page ] [ top of archives ] [ this month ]
Date: Fri, 15 May 2026 19:44:01 UTC
On Friday, May 15, 2026, Oliver Pinter <oliver.pntr@gmail.com> wrote:
> Hi!
>
> On Friday, May 15, 2026, Rick Macklem <rmacklem@freebsd.org> wrote:
>
>> The branch main has been updated by rmacklem:
>>
>> URL: https://cgit.FreeBSD.org/src/commit/?id=b92b9da3300655c86dcd
>> 42ea8a5ba45badd90847
>>
>> commit b92b9da3300655c86dcd42ea8a5ba45badd90847
>> Author: Rick Macklem <rmacklem@FreeBSD.org>
>> AuthorDate: 2026-05-14 22:33:23 +0000
>> Commit: Rick Macklem <rmacklem@FreeBSD.org>
>> CommitDate: 2026-05-14 22:33:23 +0000
>>
>> nfsd: Allow vfs.nfsd.srvmaxio to be up to 4Mbytes
>>
>> Without this patch, the maximum setting for
>> vfs.nfsd.srvmaxio was 1Mbyte. This patch increases
>> that to 4Mbytes.
>>
>> The same as for any setting above 128Kbytes, settings up to
>> 4Mbytes require that kern.ipc.maxsockbuf be increased.
>> (A message generated after setting vfs.nfsd.srvmaxio via
>> the /etc/rc.conf variable nfs_server_maxio will indicate
>> the minimum setting, which will be somewhat greater than
>> four times the setting of vfs.nfsd.srvmaxio.)
>>
>> Requested by: Cedric Blancher <cedric.blancher@gmail.com>
>> MFC after: 2 weeks
>> Fixes: 13d3bd165e22 ("subr_uio.c: Remove a KASSERT() for large NFS
>> server I/O")
>
>
> Wouldn't be better to introduce an MFC with tag, rater than abusing the
> Fixes tag? This seems to me like a new "feature", rather than a bug. And it
> will may be added to releasenotes also.
>
>
(sorry, I've just seen now, the release notes, I'm going through on the
commit from oldest to newest, but the other part is still relevant)
> ---
>> sys/fs/nfs/nfsproto.h | 3 +++
>> sys/fs/nfsserver/nfs_nfsdport.c | 5 +++--
>> 2 files changed, 6 insertions(+), 2 deletions(-)
>>
>> diff --git a/sys/fs/nfs/nfsproto.h b/sys/fs/nfs/nfsproto.h
>> index 6e67c5be3416..1054c85d8e8f 100644
>> --- a/sys/fs/nfs/nfsproto.h
>> +++ b/sys/fs/nfs/nfsproto.h
>> @@ -89,8 +89,11 @@
>> * It used to be called NFS_MAXDATA, but has been renamed to clarify that
>> * it refers to server side only and doesn't conflict with the
>> NFS_MAXDATA
>> * defined in rpcsvc/nfs_prot.h for userland.
>> + * NFS_SRVMAXIO is the default setting for vfs.nfsd.srvmaxio
>> + * NFS_SRVLIMITIO is the maximum setting allowed for vfs.nfsd.srvmaxio
>> */
>> #define NFS_SRVMAXIO (128 * 1024)
>> +#define NFS_SRVLIMITIO (4 * 1024 * 1024)
>>
>> /* Stat numbers for rpc returns (version 2, 3 and 4) */
>> /*
>> diff --git a/sys/fs/nfsserver/nfs_nfsdport.c
>> b/sys/fs/nfsserver/nfs_nfsdport.c
>> index e42d5ca1e0a3..1e6936ed351c 100644
>> --- a/sys/fs/nfsserver/nfs_nfsdport.c
>> +++ b/sys/fs/nfsserver/nfs_nfsdport.c
>> @@ -241,8 +241,9 @@ sysctl_srvmaxio(SYSCTL_HANDLER_ARGS)
>> printf("nfsd: vfs.nfsd.srvmaxio can only be increased\n");
>> return (EINVAL);
>> }
>> - if (newsrvmaxio > 1048576) {
>> - printf("nfsd: vfs.nfsd.srvmaxio cannot be > 1Mbyte\n");
>> + if (newsrvmaxio > NFS_SRVLIMITIO) {
>> + printf("nfsd: vfs.nfsd.srvmaxio cannot be > %d\n",
>> + NFS_SRVLIMITIO);
>> return (EINVAL);
>> }
>> if ((newsrvmaxio & (newsrvmaxio - 1)) != 0) {
>>
>>