svn commit: r246781 - head/usr.sbin/nfsd

Xin LI delphij at FreeBSD.org
Thu Feb 14 02:00:41 UTC 2013


Author: delphij
Date: Thu Feb 14 02:00:41 2013
New Revision: 246781
URL: http://svnweb.freebsd.org/changeset/base/246781

Log:
  Simplify r243637 and make sure that nfsdargs.{min,max}threads are always set
  to meaningful value:
  
   - When nfsdcnt is set, it dictates all values;
   - Otherwise, nfsdargs.minthreads is set to user specified value, or the
     automatically detected value if there is no one specified;
     nfsdargs.maxthreads is set to the user specified value, or the value
     of nfsdargs.minthreads if there is no one specified; when it is smaller
     than nfsdargs.minthreads, the latter's value is always used.
  
  MFC after:	2 weeks

Modified:
  head/usr.sbin/nfsd/nfsd.c

Modified: head/usr.sbin/nfsd/nfsd.c
==============================================================================
--- head/usr.sbin/nfsd/nfsd.c	Thu Feb 14 01:25:14 2013	(r246780)
+++ head/usr.sbin/nfsd/nfsd.c	Thu Feb 14 02:00:41 2013	(r246781)
@@ -1014,26 +1014,13 @@ start_server(int master)
 		}
 		nfsdargs.principal = principal;
 
-		if (minthreads_set) {
-			nfsdargs.minthreads = minthreads;
-			if (!maxthreads_set)
-				nfsdargs.maxthreads = minthreads;
-		}
-		if (maxthreads_set) {
-			nfsdargs.maxthreads = maxthreads;
-			if (!minthreads_set)
-				nfsdargs.minthreads = maxthreads;
-		}
-		if (nfsdcnt_set) {
-			nfsdargs.minthreads = nfsdcnt;
-			nfsdargs.maxthreads = nfsdcnt;
-		}
-		if (!minthreads_set && !maxthreads_set && !nfsdcnt_set) {
-			int tuned_nfsdcnt;
-
-			tuned_nfsdcnt = get_tuned_nfsdcount();
-			nfsdargs.minthreads = tuned_nfsdcnt;
-			nfsdargs.maxthreads = tuned_nfsdcnt;
+		if (nfsdcnt_set)
+			nfsdargs.minthreads = nfsdargs.maxthreads = nfsdcnt;
+		else {
+			nfsdargs.minthreads = minthreads_set ? minthreads : get_tuned_nfsdcount();
+			nfsdargs.maxthreads = maxthreads_set ? maxthreads : nfsdargs.minthreads;
+			if (nfsdargs.maxthreads < nfsdargs.minthreads)
+				nfsdargs.maxthreads = nfsdargs.minthreads;
 		}
 		error = nfssvc(nfssvc_nfsd, &nfsdargs);
 		if (error < 0 && errno == EAUTH) {


More information about the svn-src-head mailing list