Re: [PATCH] NFSD: fix up error returned by write_threads()

Jeff Layton <[email protected]>
Newsgroups gmane.linux.nfs
Message-ID <[email protected]>
On Mon, 2026-06-08 at 09:14 -0400, Scott Mayhew wrote:
> Previously, writing 0 to /proc/fs/nfsd/threads would return 0 if the NFS
> server wasn't running.  After commit 14282cc3cfa2, -EIO is returned.
> Existing scripts don't expect this behavior.
> 
> Add a check to bypass the call to nfsd_svc() when newthreads is 0 and
> the NFS server is already stopped.
> 
> Fixes: 14282cc3cfa2 ("NFSD: don't start nfsd if sv_permsocks is empty")
> Signed-off-by: Scott Mayhew <[email protected]>
> ---
>  fs/nfsd/nfsctl.c | 6 +++++-
>  1 file changed, 5 insertions(+), 1 deletion(-)
> 
> diff --git a/fs/nfsd/nfsctl.c b/fs/nfsd/nfsctl.c
> index 04e3954d54bd..ed1a06b4edcd 100644
> --- a/fs/nfsd/nfsctl.c
> +++ b/fs/nfsd/nfsctl.c
> @@ -419,6 +419,7 @@ static ssize_t write_threads(struct file *file, char *buf, size_t size)
>  	char *mesg = buf;
>  	int rv;
>  	struct net *net = netns(file);
> +	struct nfsd_net *nn = net_generic(net, nfsd_net_id);
>  
>  	if (size > 0) {
>  		int newthreads;
> @@ -429,7 +430,10 @@ static ssize_t write_threads(struct file *file, char *buf, size_t size)
>  			return -EINVAL;
>  		trace_nfsd_ctl_threads(net, newthreads);
>  		mutex_lock(&nfsd_mutex);
> -		rv = nfsd_svc(1, &newthreads, net, file->f_cred, NULL);
> +		if (newthreads > 0 || nn->nfsd_serv != NULL)
> +			rv = nfsd_svc(1, &newthreads, net, file->f_cred, NULL);
> +		else
> +			rv = 0;
>  		mutex_unlock(&nfsd_mutex);
>  		if (rv < 0)
>  			return rv;

Reviewed-by: Jeff Layton <[email protected]>
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.