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 | { |
