diff options
author | Andy Grover <andy.grover@oracle.com> | 2009-08-21 08:28:32 -0400 |
---|---|---|
committer | David S. Miller <davem@davemloft.net> | 2009-08-23 22:13:07 -0400 |
commit | 616b757ae18fb8ec2dfe7ff9d3f589f82cb0eb9d (patch) | |
tree | 40841513a49c35061c1c131ebfed28ce9a69bb3b /net | |
parent | 70041088e3b976627ba9a183b812f39ef8a9ba0e (diff) |
RDS: Export symbols from core RDS
Now that rdma and tcp transports will be modularized,
we need to export a number of functions so they can call them.
Signed-off-by: Andy Grover <andy.grover@oracle.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'net')
-rw-r--r-- | net/rds/cong.c | 1 | ||||
-rw-r--r-- | net/rds/connection.c | 5 | ||||
-rw-r--r-- | net/rds/info.c | 3 | ||||
-rw-r--r-- | net/rds/message.c | 6 | ||||
-rw-r--r-- | net/rds/page.c | 1 | ||||
-rw-r--r-- | net/rds/recv.c | 4 | ||||
-rw-r--r-- | net/rds/send.c | 3 | ||||
-rw-r--r-- | net/rds/stats.c | 2 | ||||
-rw-r--r-- | net/rds/threads.c | 2 | ||||
-rw-r--r-- | net/rds/transport.c | 2 |
10 files changed, 29 insertions, 0 deletions
diff --git a/net/rds/cong.c b/net/rds/cong.c index 710e4599d76c..dd2711df640b 100644 --- a/net/rds/cong.c +++ b/net/rds/cong.c | |||
@@ -254,6 +254,7 @@ void rds_cong_map_updated(struct rds_cong_map *map, uint64_t portmask) | |||
254 | read_unlock_irqrestore(&rds_cong_monitor_lock, flags); | 254 | read_unlock_irqrestore(&rds_cong_monitor_lock, flags); |
255 | } | 255 | } |
256 | } | 256 | } |
257 | EXPORT_SYMBOL_GPL(rds_cong_map_updated); | ||
257 | 258 | ||
258 | int rds_cong_updated_since(unsigned long *recent) | 259 | int rds_cong_updated_since(unsigned long *recent) |
259 | { | 260 | { |
diff --git a/net/rds/connection.c b/net/rds/connection.c index b420a20d84fd..cc8b568c0c84 100644 --- a/net/rds/connection.c +++ b/net/rds/connection.c | |||
@@ -255,12 +255,14 @@ struct rds_connection *rds_conn_create(__be32 laddr, __be32 faddr, | |||
255 | { | 255 | { |
256 | return __rds_conn_create(laddr, faddr, trans, gfp, 0); | 256 | return __rds_conn_create(laddr, faddr, trans, gfp, 0); |
257 | } | 257 | } |
258 | EXPORT_SYMBOL_GPL(rds_conn_create); | ||
258 | 259 | ||
259 | struct rds_connection *rds_conn_create_outgoing(__be32 laddr, __be32 faddr, | 260 | struct rds_connection *rds_conn_create_outgoing(__be32 laddr, __be32 faddr, |
260 | struct rds_transport *trans, gfp_t gfp) | 261 | struct rds_transport *trans, gfp_t gfp) |
261 | { | 262 | { |
262 | return __rds_conn_create(laddr, faddr, trans, gfp, 1); | 263 | return __rds_conn_create(laddr, faddr, trans, gfp, 1); |
263 | } | 264 | } |
265 | EXPORT_SYMBOL_GPL(rds_conn_create_outgoing); | ||
264 | 266 | ||
265 | void rds_conn_destroy(struct rds_connection *conn) | 267 | void rds_conn_destroy(struct rds_connection *conn) |
266 | { | 268 | { |
@@ -303,6 +305,7 @@ void rds_conn_destroy(struct rds_connection *conn) | |||
303 | 305 | ||
304 | rds_conn_count--; | 306 | rds_conn_count--; |
305 | } | 307 | } |
308 | EXPORT_SYMBOL_GPL(rds_conn_destroy); | ||
306 | 309 | ||
307 | static void rds_conn_message_info(struct socket *sock, unsigned int len, | 310 | static void rds_conn_message_info(struct socket *sock, unsigned int len, |
308 | struct rds_info_iterator *iter, | 311 | struct rds_info_iterator *iter, |
@@ -406,6 +409,7 @@ void rds_for_each_conn_info(struct socket *sock, unsigned int len, | |||
406 | 409 | ||
407 | spin_unlock_irqrestore(&rds_conn_lock, flags); | 410 | spin_unlock_irqrestore(&rds_conn_lock, flags); |
408 | } | 411 | } |
412 | EXPORT_SYMBOL_GPL(rds_for_each_conn_info); | ||
409 | 413 | ||
410 | static int rds_conn_info_visitor(struct rds_connection *conn, | 414 | static int rds_conn_info_visitor(struct rds_connection *conn, |
411 | void *buffer) | 415 | void *buffer) |
@@ -481,6 +485,7 @@ void rds_conn_drop(struct rds_connection *conn) | |||
481 | atomic_set(&conn->c_state, RDS_CONN_ERROR); | 485 | atomic_set(&conn->c_state, RDS_CONN_ERROR); |
482 | queue_work(rds_wq, &conn->c_down_w); | 486 | queue_work(rds_wq, &conn->c_down_w); |
483 | } | 487 | } |
488 | EXPORT_SYMBOL_GPL(rds_conn_drop); | ||
484 | 489 | ||
485 | /* | 490 | /* |
486 | * An error occurred on the connection | 491 | * An error occurred on the connection |
diff --git a/net/rds/info.c b/net/rds/info.c index 62aeef37aefe..814a91a6f4a7 100644 --- a/net/rds/info.c +++ b/net/rds/info.c | |||
@@ -79,6 +79,7 @@ void rds_info_register_func(int optname, rds_info_func func) | |||
79 | rds_info_funcs[offset] = func; | 79 | rds_info_funcs[offset] = func; |
80 | spin_unlock(&rds_info_lock); | 80 | spin_unlock(&rds_info_lock); |
81 | } | 81 | } |
82 | EXPORT_SYMBOL_GPL(rds_info_register_func); | ||
82 | 83 | ||
83 | void rds_info_deregister_func(int optname, rds_info_func func) | 84 | void rds_info_deregister_func(int optname, rds_info_func func) |
84 | { | 85 | { |
@@ -91,6 +92,7 @@ void rds_info_deregister_func(int optname, rds_info_func func) | |||
91 | rds_info_funcs[offset] = NULL; | 92 | rds_info_funcs[offset] = NULL; |
92 | spin_unlock(&rds_info_lock); | 93 | spin_unlock(&rds_info_lock); |
93 | } | 94 | } |
95 | EXPORT_SYMBOL_GPL(rds_info_deregister_func); | ||
94 | 96 | ||
95 | /* | 97 | /* |
96 | * Typically we hold an atomic kmap across multiple rds_info_copy() calls | 98 | * Typically we hold an atomic kmap across multiple rds_info_copy() calls |
@@ -137,6 +139,7 @@ void rds_info_copy(struct rds_info_iterator *iter, void *data, | |||
137 | } | 139 | } |
138 | } | 140 | } |
139 | } | 141 | } |
142 | EXPORT_SYMBOL_GPL(rds_info_copy); | ||
140 | 143 | ||
141 | /* | 144 | /* |
142 | * @optval points to the userspace buffer that the information snapshot | 145 | * @optval points to the userspace buffer that the information snapshot |
diff --git a/net/rds/message.c b/net/rds/message.c index 5a15dc8d0cd7..ca50a8ec9742 100644 --- a/net/rds/message.c +++ b/net/rds/message.c | |||
@@ -50,6 +50,7 @@ void rds_message_addref(struct rds_message *rm) | |||
50 | rdsdebug("addref rm %p ref %d\n", rm, atomic_read(&rm->m_refcount)); | 50 | rdsdebug("addref rm %p ref %d\n", rm, atomic_read(&rm->m_refcount)); |
51 | atomic_inc(&rm->m_refcount); | 51 | atomic_inc(&rm->m_refcount); |
52 | } | 52 | } |
53 | EXPORT_SYMBOL_GPL(rds_message_addref); | ||
53 | 54 | ||
54 | /* | 55 | /* |
55 | * This relies on dma_map_sg() not touching sg[].page during merging. | 56 | * This relies on dma_map_sg() not touching sg[].page during merging. |
@@ -92,6 +93,7 @@ void rds_message_put(struct rds_message *rm) | |||
92 | kfree(rm); | 93 | kfree(rm); |
93 | } | 94 | } |
94 | } | 95 | } |
96 | EXPORT_SYMBOL_GPL(rds_message_put); | ||
95 | 97 | ||
96 | void rds_message_inc_free(struct rds_incoming *inc) | 98 | void rds_message_inc_free(struct rds_incoming *inc) |
97 | { | 99 | { |
@@ -108,6 +110,7 @@ void rds_message_populate_header(struct rds_header *hdr, __be16 sport, | |||
108 | hdr->h_sequence = cpu_to_be64(seq); | 110 | hdr->h_sequence = cpu_to_be64(seq); |
109 | hdr->h_exthdr[0] = RDS_EXTHDR_NONE; | 111 | hdr->h_exthdr[0] = RDS_EXTHDR_NONE; |
110 | } | 112 | } |
113 | EXPORT_SYMBOL_GPL(rds_message_populate_header); | ||
111 | 114 | ||
112 | int rds_message_add_extension(struct rds_header *hdr, | 115 | int rds_message_add_extension(struct rds_header *hdr, |
113 | unsigned int type, const void *data, unsigned int len) | 116 | unsigned int type, const void *data, unsigned int len) |
@@ -133,6 +136,7 @@ int rds_message_add_extension(struct rds_header *hdr, | |||
133 | dst[len] = RDS_EXTHDR_NONE; | 136 | dst[len] = RDS_EXTHDR_NONE; |
134 | return 1; | 137 | return 1; |
135 | } | 138 | } |
139 | EXPORT_SYMBOL_GPL(rds_message_add_extension); | ||
136 | 140 | ||
137 | /* | 141 | /* |
138 | * If a message has extension headers, retrieve them here. | 142 | * If a message has extension headers, retrieve them here. |
@@ -208,6 +212,7 @@ int rds_message_add_rdma_dest_extension(struct rds_header *hdr, u32 r_key, u32 o | |||
208 | ext_hdr.h_rdma_offset = cpu_to_be32(offset); | 212 | ext_hdr.h_rdma_offset = cpu_to_be32(offset); |
209 | return rds_message_add_extension(hdr, RDS_EXTHDR_RDMA_DEST, &ext_hdr, sizeof(ext_hdr)); | 213 | return rds_message_add_extension(hdr, RDS_EXTHDR_RDMA_DEST, &ext_hdr, sizeof(ext_hdr)); |
210 | } | 214 | } |
215 | EXPORT_SYMBOL_GPL(rds_message_add_rdma_dest_extension); | ||
211 | 216 | ||
212 | struct rds_message *rds_message_alloc(unsigned int nents, gfp_t gfp) | 217 | struct rds_message *rds_message_alloc(unsigned int nents, gfp_t gfp) |
213 | { | 218 | { |
@@ -399,4 +404,5 @@ void rds_message_unmapped(struct rds_message *rm) | |||
399 | if (waitqueue_active(&rds_message_flush_waitq)) | 404 | if (waitqueue_active(&rds_message_flush_waitq)) |
400 | wake_up(&rds_message_flush_waitq); | 405 | wake_up(&rds_message_flush_waitq); |
401 | } | 406 | } |
407 | EXPORT_SYMBOL_GPL(rds_message_unmapped); | ||
402 | 408 | ||
diff --git a/net/rds/page.c b/net/rds/page.c index c460743a89ad..55c21efdb62e 100644 --- a/net/rds/page.c +++ b/net/rds/page.c | |||
@@ -81,6 +81,7 @@ int rds_page_copy_user(struct page *page, unsigned long offset, | |||
81 | 81 | ||
82 | return 0; | 82 | return 0; |
83 | } | 83 | } |
84 | EXPORT_SYMBOL_GPL(rds_page_copy_user); | ||
84 | 85 | ||
85 | /* | 86 | /* |
86 | * Message allocation uses this to build up regions of a message. | 87 | * Message allocation uses this to build up regions of a message. |
diff --git a/net/rds/recv.c b/net/rds/recv.c index 86bc1a06ebbd..fdff33c7b432 100644 --- a/net/rds/recv.c +++ b/net/rds/recv.c | |||
@@ -46,12 +46,14 @@ void rds_inc_init(struct rds_incoming *inc, struct rds_connection *conn, | |||
46 | inc->i_saddr = saddr; | 46 | inc->i_saddr = saddr; |
47 | inc->i_rdma_cookie = 0; | 47 | inc->i_rdma_cookie = 0; |
48 | } | 48 | } |
49 | EXPORT_SYMBOL_GPL(rds_inc_init); | ||
49 | 50 | ||
50 | void rds_inc_addref(struct rds_incoming *inc) | 51 | void rds_inc_addref(struct rds_incoming *inc) |
51 | { | 52 | { |
52 | rdsdebug("addref inc %p ref %d\n", inc, atomic_read(&inc->i_refcount)); | 53 | rdsdebug("addref inc %p ref %d\n", inc, atomic_read(&inc->i_refcount)); |
53 | atomic_inc(&inc->i_refcount); | 54 | atomic_inc(&inc->i_refcount); |
54 | } | 55 | } |
56 | EXPORT_SYMBOL_GPL(rds_inc_addref); | ||
55 | 57 | ||
56 | void rds_inc_put(struct rds_incoming *inc) | 58 | void rds_inc_put(struct rds_incoming *inc) |
57 | { | 59 | { |
@@ -62,6 +64,7 @@ void rds_inc_put(struct rds_incoming *inc) | |||
62 | inc->i_conn->c_trans->inc_free(inc); | 64 | inc->i_conn->c_trans->inc_free(inc); |
63 | } | 65 | } |
64 | } | 66 | } |
67 | EXPORT_SYMBOL_GPL(rds_inc_put); | ||
65 | 68 | ||
66 | static void rds_recv_rcvbuf_delta(struct rds_sock *rs, struct sock *sk, | 69 | static void rds_recv_rcvbuf_delta(struct rds_sock *rs, struct sock *sk, |
67 | struct rds_cong_map *map, | 70 | struct rds_cong_map *map, |
@@ -237,6 +240,7 @@ out: | |||
237 | if (rs) | 240 | if (rs) |
238 | rds_sock_put(rs); | 241 | rds_sock_put(rs); |
239 | } | 242 | } |
243 | EXPORT_SYMBOL_GPL(rds_recv_incoming); | ||
240 | 244 | ||
241 | /* | 245 | /* |
242 | * be very careful here. This is being called as the condition in | 246 | * be very careful here. This is being called as the condition in |
diff --git a/net/rds/send.c b/net/rds/send.c index a4a7f428cd76..28c88ff3d038 100644 --- a/net/rds/send.c +++ b/net/rds/send.c | |||
@@ -439,6 +439,7 @@ void rds_rdma_send_complete(struct rds_message *rm, int status) | |||
439 | sock_put(rds_rs_to_sk(rs)); | 439 | sock_put(rds_rs_to_sk(rs)); |
440 | } | 440 | } |
441 | } | 441 | } |
442 | EXPORT_SYMBOL_GPL(rds_rdma_send_complete); | ||
442 | 443 | ||
443 | /* | 444 | /* |
444 | * This is the same as rds_rdma_send_complete except we | 445 | * This is the same as rds_rdma_send_complete except we |
@@ -494,6 +495,7 @@ out: | |||
494 | 495 | ||
495 | return found; | 496 | return found; |
496 | } | 497 | } |
498 | EXPORT_SYMBOL_GPL(rds_send_get_message); | ||
497 | 499 | ||
498 | /* | 500 | /* |
499 | * This removes messages from the socket's list if they're on it. The list | 501 | * This removes messages from the socket's list if they're on it. The list |
@@ -610,6 +612,7 @@ void rds_send_drop_acked(struct rds_connection *conn, u64 ack, | |||
610 | /* now remove the messages from the sock list as needed */ | 612 | /* now remove the messages from the sock list as needed */ |
611 | rds_send_remove_from_sock(&list, RDS_RDMA_SUCCESS); | 613 | rds_send_remove_from_sock(&list, RDS_RDMA_SUCCESS); |
612 | } | 614 | } |
615 | EXPORT_SYMBOL_GPL(rds_send_drop_acked); | ||
613 | 616 | ||
614 | void rds_send_drop_to(struct rds_sock *rs, struct sockaddr_in *dest) | 617 | void rds_send_drop_to(struct rds_sock *rs, struct sockaddr_in *dest) |
615 | { | 618 | { |
diff --git a/net/rds/stats.c b/net/rds/stats.c index 91d8c58b8335..7598eb07cfb1 100644 --- a/net/rds/stats.c +++ b/net/rds/stats.c | |||
@@ -37,6 +37,7 @@ | |||
37 | #include "rds.h" | 37 | #include "rds.h" |
38 | 38 | ||
39 | DEFINE_PER_CPU_SHARED_ALIGNED(struct rds_statistics, rds_stats); | 39 | DEFINE_PER_CPU_SHARED_ALIGNED(struct rds_statistics, rds_stats); |
40 | EXPORT_PER_CPU_SYMBOL_GPL(rds_stats); | ||
40 | 41 | ||
41 | /* :.,$s/unsigned long\>.*\<s_\(.*\);/"\1",/g */ | 42 | /* :.,$s/unsigned long\>.*\<s_\(.*\);/"\1",/g */ |
42 | 43 | ||
@@ -90,6 +91,7 @@ void rds_stats_info_copy(struct rds_info_iterator *iter, | |||
90 | rds_info_copy(iter, &ctr, sizeof(ctr)); | 91 | rds_info_copy(iter, &ctr, sizeof(ctr)); |
91 | } | 92 | } |
92 | } | 93 | } |
94 | EXPORT_SYMBOL_GPL(rds_stats_info_copy); | ||
93 | 95 | ||
94 | /* | 96 | /* |
95 | * This gives global counters across all the transports. The strings | 97 | * This gives global counters across all the transports. The strings |
diff --git a/net/rds/threads.c b/net/rds/threads.c index 828a1bf9ea92..dd7e0cad1e7c 100644 --- a/net/rds/threads.c +++ b/net/rds/threads.c | |||
@@ -68,6 +68,7 @@ | |||
68 | * (TCP, IB/RDMA) to provide the necessary synchronisation. | 68 | * (TCP, IB/RDMA) to provide the necessary synchronisation. |
69 | */ | 69 | */ |
70 | struct workqueue_struct *rds_wq; | 70 | struct workqueue_struct *rds_wq; |
71 | EXPORT_SYMBOL_GPL(rds_wq); | ||
71 | 72 | ||
72 | void rds_connect_complete(struct rds_connection *conn) | 73 | void rds_connect_complete(struct rds_connection *conn) |
73 | { | 74 | { |
@@ -89,6 +90,7 @@ void rds_connect_complete(struct rds_connection *conn) | |||
89 | queue_delayed_work(rds_wq, &conn->c_send_w, 0); | 90 | queue_delayed_work(rds_wq, &conn->c_send_w, 0); |
90 | queue_delayed_work(rds_wq, &conn->c_recv_w, 0); | 91 | queue_delayed_work(rds_wq, &conn->c_recv_w, 0); |
91 | } | 92 | } |
93 | EXPORT_SYMBOL_GPL(rds_connect_complete); | ||
92 | 94 | ||
93 | /* | 95 | /* |
94 | * This random exponential backoff is relied on to eventually resolve racing | 96 | * This random exponential backoff is relied on to eventually resolve racing |
diff --git a/net/rds/transport.c b/net/rds/transport.c index 767da61ad2f3..56a530996a4a 100644 --- a/net/rds/transport.c +++ b/net/rds/transport.c | |||
@@ -53,6 +53,7 @@ int rds_trans_register(struct rds_transport *trans) | |||
53 | 53 | ||
54 | return 0; | 54 | return 0; |
55 | } | 55 | } |
56 | EXPORT_SYMBOL_GPL(rds_trans_register); | ||
56 | 57 | ||
57 | void rds_trans_unregister(struct rds_transport *trans) | 58 | void rds_trans_unregister(struct rds_transport *trans) |
58 | { | 59 | { |
@@ -63,6 +64,7 @@ void rds_trans_unregister(struct rds_transport *trans) | |||
63 | 64 | ||
64 | up_write(&rds_trans_sem); | 65 | up_write(&rds_trans_sem); |
65 | } | 66 | } |
67 | EXPORT_SYMBOL_GPL(rds_trans_unregister); | ||
66 | 68 | ||
67 | struct rds_transport *rds_trans_get_preferred(__be32 addr) | 69 | struct rds_transport *rds_trans_get_preferred(__be32 addr) |
68 | { | 70 | { |