[rds-devel] [PATCH 03/19] Make connection free aware of struct net.

Jie Liu jeff.liu at oracle.com
Sun Oct 7 05:14:02 PDT 2012


Signed-off-by: Jie Liu <jeff.liu at oracle.com>
---
 net/rds/connection.c |    7 ++++---
 net/rds/ib.h         |    2 +-
 net/rds/ib_cm.c      |    4 ++--
 net/rds/iw.h         |    2 +-
 net/rds/iw_cm.c      |    4 ++--
 net/rds/loop.c       |    2 +-
 net/rds/rds.h        |    2 +-
 net/rds/tcp.c        |    2 +-
 8 files changed, 13 insertions(+), 12 deletions(-)

diff --git a/net/rds/connection.c b/net/rds/connection.c
index 909ea1f..ba0878c 100644
--- a/net/rds/connection.c
+++ b/net/rds/connection.c
@@ -216,7 +216,7 @@ static struct rds_connection *__rds_conn_create(struct net *net,
 	if (parent) {
 		/* Creating passive conn */
 		if (parent->c_passive) {
-			trans->conn_free(conn->c_transport_data);
+			trans->conn_free(net, conn->c_transport_data);
 			kmem_cache_free(rds_conn_slab, conn);
 			conn = parent->c_passive;
 		} else {
@@ -230,7 +230,7 @@ static struct rds_connection *__rds_conn_create(struct net *net,
 
 		found = rds_conn_lookup(head, net, laddr, faddr, trans);
 		if (found) {
-			trans->conn_free(conn->c_transport_data);
+			trans->conn_free(net, conn->c_transport_data);
 			kmem_cache_free(rds_conn_slab, conn);
 			conn = found;
 		} else {
@@ -327,6 +327,7 @@ void rds_conn_shutdown(struct rds_connection *conn)
  */
 void rds_conn_destroy(struct rds_connection *conn)
 {
+	struct net *net = rds_conn_to_net(conn);
 	struct rds_message *rm, *rtmp;
 	unsigned long flags;
 
@@ -359,7 +360,7 @@ void rds_conn_destroy(struct rds_connection *conn)
 	if (conn->c_xmit_rm)
 		rds_message_put(conn->c_xmit_rm);
 
-	conn->c_trans->conn_free(conn->c_transport_data);
+	conn->c_trans->conn_free(net, conn->c_transport_data);
 
 	/*
 	 * The congestion maps aren't freed up here.  They're
diff --git a/net/rds/ib.h b/net/rds/ib.h
index 8d2b3d5..71175dc 100644
--- a/net/rds/ib.h
+++ b/net/rds/ib.h
@@ -277,7 +277,7 @@ extern struct list_head ib_nodev_conns;
 
 /* ib_cm.c */
 int rds_ib_conn_alloc(struct rds_connection *conn, gfp_t gfp);
-void rds_ib_conn_free(void *arg);
+void rds_ib_conn_free(struct net *net, void *arg);
 int rds_ib_conn_connect(struct rds_connection *conn);
 void rds_ib_conn_shutdown(struct rds_connection *conn);
 void rds_ib_state_change(struct sock *sk);
diff --git a/net/rds/ib_cm.c b/net/rds/ib_cm.c
index 6327ac6..59561ad 100644
--- a/net/rds/ib_cm.c
+++ b/net/rds/ib_cm.c
@@ -790,10 +790,10 @@ int rds_ib_conn_alloc(struct rds_connection *conn, gfp_t gfp)
 /*
  * Free a connection. Connection must be shut down and not set for reconnect.
  */
-void rds_ib_conn_free(void *arg)
+void rds_ib_conn_free(struct net *net, void *arg)
 {
 	struct rds_ib_connection *ic = arg;
-	spinlock_t	*lock_ptr;
+	spinlock_t *lock_ptr;
 
 	rdsdebug("ic %p\n", ic);
 
diff --git a/net/rds/iw.h b/net/rds/iw.h
index 04ce3b1..8c5d8c5 100644
--- a/net/rds/iw.h
+++ b/net/rds/iw.h
@@ -279,7 +279,7 @@ extern struct list_head iw_nodev_conns;
 
 /* ib_cm.c */
 int rds_iw_conn_alloc(struct rds_connection *conn, gfp_t gfp);
-void rds_iw_conn_free(void *arg);
+void rds_iw_conn_free(struct net *net, void *arg);
 int rds_iw_conn_connect(struct rds_connection *conn);
 void rds_iw_conn_shutdown(struct rds_connection *conn);
 void rds_iw_state_change(struct sock *sk);
diff --git a/net/rds/iw_cm.c b/net/rds/iw_cm.c
index 77ded4e..bccb1d4 100644
--- a/net/rds/iw_cm.c
+++ b/net/rds/iw_cm.c
@@ -728,10 +728,10 @@ int rds_iw_conn_alloc(struct rds_connection *conn, gfp_t gfp)
 /*
  * Free a connection. Connection must be shut down and not set for reconnect.
  */
-void rds_iw_conn_free(void *arg)
+void rds_iw_conn_free(struct net *net, void *arg)
 {
 	struct rds_iw_connection *ic = arg;
-	spinlock_t	*lock_ptr;
+	spinlock_t *lock_ptr;
 
 	rdsdebug("ic %p\n", ic);
 
diff --git a/net/rds/loop.c b/net/rds/loop.c
index 6b12b68..fb1022b 100644
--- a/net/rds/loop.c
+++ b/net/rds/loop.c
@@ -136,7 +136,7 @@ static int rds_loop_conn_alloc(struct rds_connection *conn, gfp_t gfp)
 	return 0;
 }
 
-static void rds_loop_conn_free(void *arg)
+static void rds_loop_conn_free(struct net *net, void *arg)
 {
 	struct rds_loop_connection *lc = arg;
 	unsigned long flags;
diff --git a/net/rds/rds.h b/net/rds/rds.h
index 3bad14f..02ef0e5 100644
--- a/net/rds/rds.h
+++ b/net/rds/rds.h
@@ -428,7 +428,7 @@ struct rds_transport {
 
 	int (*laddr_check)(__be32 addr);
 	int (*conn_alloc)(struct rds_connection *conn, gfp_t gfp);
-	void (*conn_free)(void *data);
+	void (*conn_free)(struct net *net, void *data);
 	int (*conn_connect)(struct rds_connection *conn);
 	void (*conn_shutdown)(struct rds_connection *conn);
 	void (*xmit_prepare)(struct rds_connection *conn);
diff --git a/net/rds/tcp.c b/net/rds/tcp.c
index edac9ef..82b692a 100644
--- a/net/rds/tcp.c
+++ b/net/rds/tcp.c
@@ -219,7 +219,7 @@ static int rds_tcp_conn_alloc(struct rds_connection *conn, gfp_t gfp)
 	return 0;
 }
 
-static void rds_tcp_conn_free(void *arg)
+static void rds_tcp_conn_free(struct net *net, void *arg)
 {
 	struct rds_tcp_connection *tc = arg;
 	unsigned long flags;
-- 
1.7.4.1




More information about the rds-devel mailing list