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

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
...@@ -165,10 +165,12 @@ int nfsd_vers(int vers, enum vers_op change) ...@@ -165,10 +165,12 @@ int nfsd_vers(int vers, enum vers_op change)
int nfsd_nrthreads(void) int nfsd_nrthreads(void)
{ {
if (nfsd_serv == NULL) int rv = 0;
return 0; mutex_lock(&nfsd_mutex);
else if (nfsd_serv)
return nfsd_serv->sv_nrthreads; rv = nfsd_serv->sv_nrthreads;
mutex_unlock(&nfsd_mutex);
return rv;
} }
static void nfsd_last_thread(struct svc_serv *serv) static void nfsd_last_thread(struct svc_serv *serv)
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment