[PATCH 29/38] svc: Make svc_age_temp_sockets svc_age_temp_transports

Previous message: [thread] [date] [author]
Next message: [thread] [date] [author]
From: Tom Tucker
Date: Tuesday, December 11, 2007 - 4:32 pm

This function is transport independent. Change it to use svc_xprt directly
and change it's name to reflect this.

Signed-off-by: Tom Tucker <tom@opengridcomputing.com>
---

 net/sunrpc/svcsock.c |   37 +++++++++++++++++++------------------
 1 files changed, 19 insertions(+), 18 deletions(-)

diff --git a/net/sunrpc/svcsock.c b/net/sunrpc/svcsock.c
index a6793b5..27cf09f 100644
--- a/net/sunrpc/svcsock.c
+++ b/net/sunrpc/svcsock.c
@@ -1658,49 +1658,50 @@ svc_send(struct svc_rqst *rqstp)
  * Timer function to close old temporary sockets, using
  * a mark-and-sweep algorithm.
  */
-static void
-svc_age_temp_sockets(unsigned long closure)
+static void svc_age_temp_xprts(unsigned long closure)
 {
 	struct svc_serv *serv = (struct svc_serv *)closure;
-	struct svc_sock *svsk;
+	struct svc_xprt *xprt;
 	struct list_head *le, *next;
 	LIST_HEAD(to_be_aged);
 
-	dprintk("svc_age_temp_sockets\n");
+	dprintk("svc_age_temp_xprts\n");
 
 	if (!spin_trylock_bh(&serv->sv_lock)) {
 		/* busy, try again 1 sec later */
-		dprintk("svc_age_temp_sockets: busy\n");
+		dprintk("svc_age_temp_xprts: busy\n");
 		mod_timer(&serv->sv_temptimer, jiffies + HZ);
 		return;
 	}
 
 	list_for_each_safe(le, next, &serv->sv_tempsocks) {
-		svsk = list_entry(le, struct svc_sock, sk_xprt.xpt_list);
+		xprt = list_entry(le, struct svc_xprt, xpt_list);
 
-		if (!test_and_set_bit(XPT_OLD, &svsk->sk_xprt.xpt_flags))
+		/* First time through, just mark it OLD. Second time
+		 * through, close it. */
+		if (!test_and_set_bit(XPT_OLD, &xprt->xpt_flags))
 			continue;
-		if (atomic_read(&svsk->sk_xprt.xpt_ref.refcount) > 1
-		    || test_bit(XPT_BUSY, &svsk->sk_xprt.xpt_flags))
+		if (atomic_read(&xprt->xpt_ref.refcount) > 1
+		    || test_bit(XPT_BUSY, &xprt->xpt_flags))
 			continue;
-		svc_xprt_get(&svsk->sk_xprt);
+		svc_xprt_get(xprt);
 		list_move(le, &to_be_aged);
-		set_bit(XPT_CLOSE, &svsk->sk_xprt.xpt_flags);
-		set_bit(XPT_DETACHED, &svsk->sk_xprt.xpt_flags);
+		set_bit(XPT_CLOSE, &xprt->xpt_flags);
+		set_bit(XPT_DETACHED, &xprt->xpt_flags);
 	}
 	spin_unlock_bh(&serv->sv_lock);
 
 	while (!list_empty(&to_be_aged)) {
 		le = to_be_aged.next;
-		/* fiddling the sk_xprt.xpt_list node is safe 'cos we're XPT_DETACHED */
+		/* fiddling the xpt_list node is safe 'cos we're XPT_DETACHED */
 		list_del_init(le);
-		svsk = list_entry(le, struct svc_sock, sk_xprt.xpt_list);
+		xprt = list_entry(le, struct svc_xprt, xpt_list);
 
-		dprintk("queuing svsk %p for closing\n", svsk);
+		dprintk("queuing xprt %p for closing\n", xprt);
 
 		/* a thread will dequeue and close it soon */
-		svc_xprt_enqueue(&svsk->sk_xprt);
-		svc_xprt_put(&svsk->sk_xprt);
+		svc_xprt_enqueue(xprt);
+		svc_xprt_put(xprt);
 	}
 
 	mod_timer(&serv->sv_temptimer, jiffies + svc_conn_age_period * HZ);
@@ -1758,7 +1759,7 @@ static struct svc_sock *svc_setup_socket(struct svc_serv *serv,
 		serv->sv_tmpcnt++;
 		if (serv->sv_temptimer.function == NULL) {
 			/* setup timer to age temp sockets */
-			setup_timer(&serv->sv_temptimer, svc_age_temp_sockets,
+			setup_timer(&serv->sv_temptimer, svc_age_temp_xprts,
 					(unsigned long)serv);
 			mod_timer(&serv->sv_temptimer,
 					jiffies + svc_conn_age_period * HZ);
-
To unsubscribe from this list: send the line "unsubscribe linux-nfs" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Previous message: [thread] [date] [author]
Next message: [thread] [date] [author]

Messages in current thread:
[PATCH 00/38] svc: SVC Transport Switch, Tom Tucker, (Tue Dec 11, 4:31 pm)
[PATCH 01/38] svc: Add an svc transport class, Tom Tucker, (Tue Dec 11, 4:31 pm)
[PATCH 08/38] svc: Add xpo_prep_reply_hdr, Tom Tucker, (Tue Dec 11, 4:32 pm)
[PATCH 11/38] svc: Add xpo_accept transport function, Tom Tucker, (Tue Dec 11, 4:32 pm)
[PATCH 14/38] svc: Change sk_inuse to a kref, Tom Tucker, (Tue Dec 11, 4:32 pm)
[PATCH 17/38] svc: Make close transport independent, Tom Tucker, (Tue Dec 11, 4:32 pm)
[PATCH 18/38] svc: Move sk_reserved to svc_xprt, Tom Tucker, (Tue Dec 11, 4:32 pm)
[PATCH 20/38] svc: Make svc_send transport neutral, Tom Tucker, (Tue Dec 11, 4:32 pm)
[PATCH 23/38] svc: Remove sk_lastrecv, Tom Tucker, (Tue Dec 11, 4:32 pm)
[PATCH 28/38] svc: Make svc_recv transport neutral, Tom Tucker, (Tue Dec 11, 4:32 pm)
[PATCH 29/38] svc: Make svc_age_temp_sockets svc_age_temp_ ..., Tom Tucker, (Tue Dec 11, 4:32 pm)
Re: [PATCH 01/38] svc: Add an svc transport class, J. Bruce Fields, (Thu Dec 13, 11:45 am)
Re: [PATCH 02/38] svc: Make svc_sock the tcp/udp transport, J. Bruce Fields, (Thu Dec 13, 12:01 pm)
Re: [PATCH 06/38] svc: Add transport specific xpo_release ..., J. Bruce Fields, (Thu Dec 13, 12:31 pm)
Re: [PATCH 11/38] svc: Add xpo_accept transport function, J. Bruce Fields, (Fri Dec 14, 12:01 pm)
Re: [PATCH 11/38] svc: Add xpo_accept transport function, J. Bruce Fields, (Fri Dec 14, 12:55 pm)
Re: [PATCH 14/38] svc: Change sk_inuse to a kref, J. Bruce Fields, (Fri Dec 14, 1:52 pm)