diff options
author | NeilBrown <neilb@suse.de> | 2012-07-31 14:40:12 +1000 |
---|---|---|
committer | Trond Myklebust <Trond.Myklebust@netapp.com> | 2012-07-31 12:33:29 -0400 |
commit | b042414feb240df5f5911b9bca39b61e6738e814 (patch) | |
tree | 14ba610869427a80609d81104795cc10c58e0772 | |
parent | caea33da898e4e14f0ba58173e3b7689981d2c0b (diff) | |
download | op-kernel-dev-b042414feb240df5f5911b9bca39b61e6738e814.zip op-kernel-dev-b042414feb240df5f5911b9bca39b61e6738e814.tar.gz |
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.c | 4 |
1 files changed, 4 insertions, 0 deletions
diff --git a/fs/nfs/callback.c b/fs/nfs/callback.c index ca3ac99..4c8459e 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) { |