svcrpc: fix UDP on servers with lots of threads
authorJ. Bruce Fields <bfields@redhat.com>
Wed, 20 Feb 2019 17:54:50 +0000 (12:54 -0500)
committerJ. Bruce Fields <bfields@redhat.com>
Thu, 21 Feb 2019 15:17:36 +0000 (10:17 -0500)
commitb7e5034cbecf5a65b7bfdc2b20a8378039577706
treec870f31de77d6108b2b58b57ff0b1863853c39fc
parent8820bcaa5bd73db2e28caae98f080a04cb6e2abb
svcrpc: fix UDP on servers with lots of threads

James Pearson found that an NFS server stopped responding to UDP
requests if started with more than 1017 threads.

sv_max_mesg is about 2^20, so that is probably where the calculation
performed by

svc_sock_setbufsize(svsk->sk_sock,
                            (serv->sv_nrthreads+3) * serv->sv_max_mesg,
                            (serv->sv_nrthreads+3) * serv->sv_max_mesg);

starts to overflow an int.

Reported-by: James Pearson <jcpearson@gmail.com>
Tested-by: James Pearson <jcpearson@gmail.com>
Cc: stable@vger.kernel.org
Signed-off-by: J. Bruce Fields <bfields@redhat.com>
net/sunrpc/svcsock.c