summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorNeilBrown <neilb@suse.de>2012-07-31 14:40:12 +1000
committerTrond Myklebust <Trond.Myklebust@netapp.com>2012-07-31 12:33:29 -0400
commitb042414feb240df5f5911b9bca39b61e6738e814 (patch)
tree14ba610869427a80609d81104795cc10c58e0772
parentcaea33da898e4e14f0ba58173e3b7689981d2c0b (diff)
downloadlinux-b042414feb240df5f5911b9bca39b61e6738e814.tar.gz
linux-b042414feb240df5f5911b9bca39b61e6738e814.tar.bz2
linux-b042414feb240df5f5911b9bca39b61e6738e814.zip
nfs: increase number of permitted callback connections.
By default a sunrpc service is limited to (N+3)*20 connections where N is the number of threads. This is 80 when N==1. If this number is exceeded a warning is printed suggesting that the number of threads be increased. However with services which run a single thread, this is impossible. For such services there is a ->sv_maxconn setting that can be used to forcibly increase the limit, and silence the message. This is used by lockd. The nfs client uses a sunrpc service to handle callbacks and it too is single-threaded, so to avoid the useless messages, and to allow a reasonable number of concurrent connections, we need to set ->sv_maxconn. 1024 seems like a good number. Signed-off-by: NeilBrown <neilb@suse.de> Signed-off-by: Trond Myklebust <Trond.Myklebust@netapp.com>
-rw-r--r--fs/nfs/callback.c4
1 files changed, 4 insertions, 0 deletions
diff --git a/fs/nfs/callback.c b/fs/nfs/callback.c
index ca3ac992028b..4c8459e5bdee 100644
--- a/fs/nfs/callback.c
+++ b/fs/nfs/callback.c
@@ -241,6 +241,10 @@ int nfs_callback_up(u32 minorversion, struct rpc_xprt *xprt)
ret = -ENOMEM;
goto out_err;
}
+ /* As there is only one thread we need to over-ride the
+ * default maximum of 80 connections
+ */
+ serv->sv_maxconn = 1024;
ret = svc_bind(serv, net);
if (ret < 0) {