svc: Make svc_check_conn_limits xprt independent
authorTom Tucker <tom@opengridcomputing.com>
Mon, 31 Dec 2007 03:08:25 +0000 (21:08 -0600)
committerJ. Bruce Fields <bfields@citi.umich.edu>
Fri, 1 Feb 2008 21:42:13 +0000 (16:42 -0500)
The svc_check_conn_limits function only manipulates xprt fields. Change references
to svc_sock->sk_xprt to svc_xprt directly.

Signed-off-by: Tom Tucker <tom@opengridcomputing.com>
Acked-by: Neil Brown <neilb@suse.de>
Reviewed-by: Chuck Lever <chuck.lever@oracle.com>
Reviewed-by: Greg Banks <gnb@sgi.com>
Signed-off-by: J. Bruce Fields <bfields@citi.umich.edu>
net/sunrpc/svcsock.c

index 157de99..0814a78 100644 (file)
@@ -1448,31 +1448,31 @@ svc_sock_update_bufs(struct svc_serv *serv)
 static void svc_check_conn_limits(struct svc_serv *serv)
 {
        if (serv->sv_tmpcnt > (serv->sv_nrthreads+3)*20) {
-               struct svc_sock *svsk = NULL;
+               struct svc_xprt *xprt = NULL;
                spin_lock_bh(&serv->sv_lock);
                if (!list_empty(&serv->sv_tempsocks)) {
                        if (net_ratelimit()) {
                                /* Try to help the admin */
-                               printk(KERN_NOTICE "%s: too many open TCP "
-                                      "sockets, consider increasing the "
+                               printk(KERN_NOTICE "%s: too many open  "
+                                      "connections, consider increasing the "
                                       "number of nfsd threads\n",
                                       serv->sv_name);
                        }
                        /*
-                        * Always select the oldest socket. It's not fair,
+                        * Always select the oldest connection. It's not fair,
                         * but so is life
                         */
-                       svsk = list_entry(serv->sv_tempsocks.prev,
-                                         struct svc_sock,
-                                         sk_xprt.xpt_list);
-                       set_bit(XPT_CLOSE, &svsk->sk_xprt.xpt_flags);
-                       svc_xprt_get(&svsk->sk_xprt);
+                       xprt = list_entry(serv->sv_tempsocks.prev,
+                                         struct svc_xprt,
+                                         xpt_list);
+                       set_bit(XPT_CLOSE, &xprt->xpt_flags);
+                       svc_xprt_get(xprt);
                }
                spin_unlock_bh(&serv->sv_lock);
 
-               if (svsk) {
-                       svc_xprt_enqueue(&svsk->sk_xprt);
-                       svc_xprt_put(&svsk->sk_xprt);
+               if (xprt) {
+                       svc_xprt_enqueue(xprt);
+                       svc_xprt_put(xprt);
                }
        }
 }