Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit c7d106c9 authored by Neil Brown's avatar Neil Brown Committed by J. Bruce Fields
Browse files

nfsd: fix race in nfsd_nrthreads()



We need the nfsd_mutex before accessing nfsd_serv->sv_nrthreads or we
can't even guarantee nfsd_serv will still be there.

Signed-off-by: default avatarNeil Brown <neilb@suse.de>
Acked-by: default avatarJeff Layton <jlayton@redhat.com>
Signed-off-by: default avatarJ. Bruce Fields <bfields@citi.umich.edu>
parent abd1ec4e
Loading
Loading
Loading
Loading
+6 −4
Original line number Diff line number Diff line
@@ -165,10 +165,12 @@ int nfsd_vers(int vers, enum vers_op change)

int nfsd_nrthreads(void)
{
	if (nfsd_serv == NULL)
		return 0;
	else
		return nfsd_serv->sv_nrthreads;
	int rv = 0;
	mutex_lock(&nfsd_mutex);
	if (nfsd_serv)
		rv = nfsd_serv->sv_nrthreads;
	mutex_unlock(&nfsd_mutex);
	return rv;
}

static void nfsd_last_thread(struct svc_serv *serv)