]> www.pilppa.org Git - linux-2.6-omap-h63xx.git/blobdiff - fs/nfsd/nfssvc.c
nfsd: fix race in nfsd_nrthreads()
[linux-2.6-omap-h63xx.git] / fs / nfsd / nfssvc.c
index 26c81149d49a9477e774c6a478a20264dc7280c2..96fdbcab8d95a7ecb46e2b483da6e1901b6bc76b 100644 (file)
@@ -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)