• Jeff Layton's avatar
    sunrpc: add sv_maxconn field to svc_serv (try #3) · c9233eb7
    Jeff Layton authored
    svc_check_conn_limits() attempts to prevent denial of service attacks
    by having the service close old connections once it reaches a
    threshold. This threshold is based on the number of threads in the
    service:
    
    	(serv->sv_nrthreads + 3) * 20
    
    Once we reach this, we drop the oldest connections and a printk pops
    to warn the admin that they should increase the number of threads.
    
    Increasing the number of threads isn't an option however for services
    like lockd. We don't want to eliminate this check entirely for such
    services but we need some way to increase this limit.
    
    This patch adds a sv_maxconn field to the svc_serv struct. When it's
    set to 0, we use the current method to calculate the max number of
    connections. RPC services can then set this on an as-needed basis.
    Signed-off-by: default avatarJeff Layton <jlayton@redhat.com>
    Acked-by: default avatarNeil Brown <neilb@suse.de>
    Signed-off-by: default avatarJ. Bruce Fields <bfields@citi.umich.edu>
    c9233eb7
svc_xprt.c 29.2 KB