[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