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
This commit is contained in:
Xin LI 2013-02-14 02:00:41 +00:00
parent 2a0b6dc5c3
commit 535875c734

View File

@ -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) {