Commit 616b757a authored by Andy Grover's avatar Andy Grover Committed by David S. Miller

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: default avatarAndy Grover <andy.grover@oracle.com>
Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
parent 70041088
...@@ -254,6 +254,7 @@ void rds_cong_map_updated(struct rds_cong_map *map, uint64_t portmask) ...@@ -254,6 +254,7 @@ void rds_cong_map_updated(struct rds_cong_map *map, uint64_t portmask)
read_unlock_irqrestore(&rds_cong_monitor_lock, flags); read_unlock_irqrestore(&rds_cong_monitor_lock, flags);
} }
} }
EXPORT_SYMBOL_GPL(rds_cong_map_updated);
int rds_cong_updated_since(unsigned long *recent) int rds_cong_updated_since(unsigned long *recent)
{ {
......
...@@ -255,12 +255,14 @@ struct rds_connection *rds_conn_create(__be32 laddr, __be32 faddr, ...@@ -255,12 +255,14 @@ struct rds_connection *rds_conn_create(__be32 laddr, __be32 faddr,
{ {
return __rds_conn_create(laddr, faddr, trans, gfp, 0); return __rds_conn_create(laddr, faddr, trans, gfp, 0);
} }
EXPORT_SYMBOL_GPL(rds_conn_create);
struct rds_connection *rds_conn_create_outgoing(__be32 laddr, __be32 faddr, struct rds_connection *rds_conn_create_outgoing(__be32 laddr, __be32 faddr,
struct rds_transport *trans, gfp_t gfp) struct rds_transport *trans, gfp_t gfp)
{ {
return __rds_conn_create(laddr, faddr, trans, gfp, 1); return __rds_conn_create(laddr, faddr, trans, gfp, 1);
} }
EXPORT_SYMBOL_GPL(rds_conn_create_outgoing);
void rds_conn_destroy(struct rds_connection *conn) void rds_conn_destroy(struct rds_connection *conn)
{ {
...@@ -303,6 +305,7 @@ void rds_conn_destroy(struct rds_connection *conn) ...@@ -303,6 +305,7 @@ void rds_conn_destroy(struct rds_connection *conn)
rds_conn_count--; rds_conn_count--;
} }
EXPORT_SYMBOL_GPL(rds_conn_destroy);
static void rds_conn_message_info(struct socket *sock, unsigned int len, static void rds_conn_message_info(struct socket *sock, unsigned int len,
struct rds_info_iterator *iter, struct rds_info_iterator *iter,
...@@ -406,6 +409,7 @@ void rds_for_each_conn_info(struct socket *sock, unsigned int len, ...@@ -406,6 +409,7 @@ void rds_for_each_conn_info(struct socket *sock, unsigned int len,
spin_unlock_irqrestore(&rds_conn_lock, flags); spin_unlock_irqrestore(&rds_conn_lock, flags);
} }
EXPORT_SYMBOL_GPL(rds_for_each_conn_info);
static int rds_conn_info_visitor(struct rds_connection *conn, static int rds_conn_info_visitor(struct rds_connection *conn,
void *buffer) void *buffer)
...@@ -481,6 +485,7 @@ void rds_conn_drop(struct rds_connection *conn) ...@@ -481,6 +485,7 @@ void rds_conn_drop(struct rds_connection *conn)
atomic_set(&conn->c_state, RDS_CONN_ERROR); atomic_set(&conn->c_state, RDS_CONN_ERROR);
queue_work(rds_wq, &conn->c_down_w); queue_work(rds_wq, &conn->c_down_w);
} }
EXPORT_SYMBOL_GPL(rds_conn_drop);
/* /*
* An error occurred on the connection * An error occurred on the connection
......
...@@ -79,6 +79,7 @@ void rds_info_register_func(int optname, rds_info_func func) ...@@ -79,6 +79,7 @@ void rds_info_register_func(int optname, rds_info_func func)
rds_info_funcs[offset] = func; rds_info_funcs[offset] = func;
spin_unlock(&rds_info_lock); spin_unlock(&rds_info_lock);
} }
EXPORT_SYMBOL_GPL(rds_info_register_func);
void rds_info_deregister_func(int optname, rds_info_func func) void rds_info_deregister_func(int optname, rds_info_func func)
{ {
...@@ -91,6 +92,7 @@ void rds_info_deregister_func(int optname, rds_info_func func) ...@@ -91,6 +92,7 @@ void rds_info_deregister_func(int optname, rds_info_func func)
rds_info_funcs[offset] = NULL; rds_info_funcs[offset] = NULL;
spin_unlock(&rds_info_lock); spin_unlock(&rds_info_lock);
} }
EXPORT_SYMBOL_GPL(rds_info_deregister_func);
/* /*
* Typically we hold an atomic kmap across multiple rds_info_copy() calls * 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,6 +139,7 @@ void rds_info_copy(struct rds_info_iterator *iter, void *data,
} }
} }
} }
EXPORT_SYMBOL_GPL(rds_info_copy);
/* /*
* @optval points to the userspace buffer that the information snapshot * @optval points to the userspace buffer that the information snapshot
......
...@@ -50,6 +50,7 @@ void rds_message_addref(struct rds_message *rm) ...@@ -50,6 +50,7 @@ void rds_message_addref(struct rds_message *rm)
rdsdebug("addref rm %p ref %d\n", rm, atomic_read(&rm->m_refcount)); rdsdebug("addref rm %p ref %d\n", rm, atomic_read(&rm->m_refcount));
atomic_inc(&rm->m_refcount); atomic_inc(&rm->m_refcount);
} }
EXPORT_SYMBOL_GPL(rds_message_addref);
/* /*
* This relies on dma_map_sg() not touching sg[].page during merging. * 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,6 +93,7 @@ void rds_message_put(struct rds_message *rm)
kfree(rm); kfree(rm);
} }
} }
EXPORT_SYMBOL_GPL(rds_message_put);
void rds_message_inc_free(struct rds_incoming *inc) void rds_message_inc_free(struct rds_incoming *inc)
{ {
...@@ -108,6 +110,7 @@ void rds_message_populate_header(struct rds_header *hdr, __be16 sport, ...@@ -108,6 +110,7 @@ void rds_message_populate_header(struct rds_header *hdr, __be16 sport,
hdr->h_sequence = cpu_to_be64(seq); hdr->h_sequence = cpu_to_be64(seq);
hdr->h_exthdr[0] = RDS_EXTHDR_NONE; hdr->h_exthdr[0] = RDS_EXTHDR_NONE;
} }
EXPORT_SYMBOL_GPL(rds_message_populate_header);
int rds_message_add_extension(struct rds_header *hdr, int rds_message_add_extension(struct rds_header *hdr,
unsigned int type, const void *data, unsigned int len) unsigned int type, const void *data, unsigned int len)
...@@ -133,6 +136,7 @@ int rds_message_add_extension(struct rds_header *hdr, ...@@ -133,6 +136,7 @@ int rds_message_add_extension(struct rds_header *hdr,
dst[len] = RDS_EXTHDR_NONE; dst[len] = RDS_EXTHDR_NONE;
return 1; return 1;
} }
EXPORT_SYMBOL_GPL(rds_message_add_extension);
/* /*
* If a message has extension headers, retrieve them here. * 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,6 +212,7 @@ int rds_message_add_rdma_dest_extension(struct rds_header *hdr, u32 r_key, u32 o
ext_hdr.h_rdma_offset = cpu_to_be32(offset); ext_hdr.h_rdma_offset = cpu_to_be32(offset);
return rds_message_add_extension(hdr, RDS_EXTHDR_RDMA_DEST, &ext_hdr, sizeof(ext_hdr)); return rds_message_add_extension(hdr, RDS_EXTHDR_RDMA_DEST, &ext_hdr, sizeof(ext_hdr));
} }
EXPORT_SYMBOL_GPL(rds_message_add_rdma_dest_extension);
struct rds_message *rds_message_alloc(unsigned int nents, gfp_t gfp) struct rds_message *rds_message_alloc(unsigned int nents, gfp_t gfp)
{ {
...@@ -399,4 +404,5 @@ void rds_message_unmapped(struct rds_message *rm) ...@@ -399,4 +404,5 @@ void rds_message_unmapped(struct rds_message *rm)
if (waitqueue_active(&rds_message_flush_waitq)) if (waitqueue_active(&rds_message_flush_waitq))
wake_up(&rds_message_flush_waitq); wake_up(&rds_message_flush_waitq);
} }
EXPORT_SYMBOL_GPL(rds_message_unmapped);
...@@ -81,6 +81,7 @@ int rds_page_copy_user(struct page *page, unsigned long offset, ...@@ -81,6 +81,7 @@ int rds_page_copy_user(struct page *page, unsigned long offset,
return 0; return 0;
} }
EXPORT_SYMBOL_GPL(rds_page_copy_user);
/* /*
* Message allocation uses this to build up regions of a message. * Message allocation uses this to build up regions of a message.
......
...@@ -46,12 +46,14 @@ void rds_inc_init(struct rds_incoming *inc, struct rds_connection *conn, ...@@ -46,12 +46,14 @@ void rds_inc_init(struct rds_incoming *inc, struct rds_connection *conn,
inc->i_saddr = saddr; inc->i_saddr = saddr;
inc->i_rdma_cookie = 0; inc->i_rdma_cookie = 0;
} }
EXPORT_SYMBOL_GPL(rds_inc_init);
void rds_inc_addref(struct rds_incoming *inc) void rds_inc_addref(struct rds_incoming *inc)
{ {
rdsdebug("addref inc %p ref %d\n", inc, atomic_read(&inc->i_refcount)); rdsdebug("addref inc %p ref %d\n", inc, atomic_read(&inc->i_refcount));
atomic_inc(&inc->i_refcount); atomic_inc(&inc->i_refcount);
} }
EXPORT_SYMBOL_GPL(rds_inc_addref);
void rds_inc_put(struct rds_incoming *inc) void rds_inc_put(struct rds_incoming *inc)
{ {
...@@ -62,6 +64,7 @@ void rds_inc_put(struct rds_incoming *inc) ...@@ -62,6 +64,7 @@ void rds_inc_put(struct rds_incoming *inc)
inc->i_conn->c_trans->inc_free(inc); inc->i_conn->c_trans->inc_free(inc);
} }
} }
EXPORT_SYMBOL_GPL(rds_inc_put);
static void rds_recv_rcvbuf_delta(struct rds_sock *rs, struct sock *sk, static void rds_recv_rcvbuf_delta(struct rds_sock *rs, struct sock *sk,
struct rds_cong_map *map, struct rds_cong_map *map,
...@@ -237,6 +240,7 @@ void rds_recv_incoming(struct rds_connection *conn, __be32 saddr, __be32 daddr, ...@@ -237,6 +240,7 @@ void rds_recv_incoming(struct rds_connection *conn, __be32 saddr, __be32 daddr,
if (rs) if (rs)
rds_sock_put(rs); rds_sock_put(rs);
} }
EXPORT_SYMBOL_GPL(rds_recv_incoming);
/* /*
* be very careful here. This is being called as the condition in * be very careful here. This is being called as the condition in
......
...@@ -439,6 +439,7 @@ void rds_rdma_send_complete(struct rds_message *rm, int status) ...@@ -439,6 +439,7 @@ void rds_rdma_send_complete(struct rds_message *rm, int status)
sock_put(rds_rs_to_sk(rs)); sock_put(rds_rs_to_sk(rs));
} }
} }
EXPORT_SYMBOL_GPL(rds_rdma_send_complete);
/* /*
* This is the same as rds_rdma_send_complete except we * This is the same as rds_rdma_send_complete except we
...@@ -494,6 +495,7 @@ struct rds_message *rds_send_get_message(struct rds_connection *conn, ...@@ -494,6 +495,7 @@ struct rds_message *rds_send_get_message(struct rds_connection *conn,
return found; return found;
} }
EXPORT_SYMBOL_GPL(rds_send_get_message);
/* /*
* This removes messages from the socket's list if they're on it. The list * 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,6 +612,7 @@ void rds_send_drop_acked(struct rds_connection *conn, u64 ack,
/* now remove the messages from the sock list as needed */ /* now remove the messages from the sock list as needed */
rds_send_remove_from_sock(&list, RDS_RDMA_SUCCESS); rds_send_remove_from_sock(&list, RDS_RDMA_SUCCESS);
} }
EXPORT_SYMBOL_GPL(rds_send_drop_acked);
void rds_send_drop_to(struct rds_sock *rs, struct sockaddr_in *dest) void rds_send_drop_to(struct rds_sock *rs, struct sockaddr_in *dest)
{ {
......
...@@ -37,6 +37,7 @@ ...@@ -37,6 +37,7 @@
#include "rds.h" #include "rds.h"
DEFINE_PER_CPU_SHARED_ALIGNED(struct rds_statistics, rds_stats); DEFINE_PER_CPU_SHARED_ALIGNED(struct rds_statistics, rds_stats);
EXPORT_PER_CPU_SYMBOL_GPL(rds_stats);
/* :.,$s/unsigned long\>.*\<s_\(.*\);/"\1",/g */ /* :.,$s/unsigned long\>.*\<s_\(.*\);/"\1",/g */
...@@ -90,6 +91,7 @@ void rds_stats_info_copy(struct rds_info_iterator *iter, ...@@ -90,6 +91,7 @@ void rds_stats_info_copy(struct rds_info_iterator *iter,
rds_info_copy(iter, &ctr, sizeof(ctr)); rds_info_copy(iter, &ctr, sizeof(ctr));
} }
} }
EXPORT_SYMBOL_GPL(rds_stats_info_copy);
/* /*
* This gives global counters across all the transports. The strings * This gives global counters across all the transports. The strings
......
...@@ -68,6 +68,7 @@ ...@@ -68,6 +68,7 @@
* (TCP, IB/RDMA) to provide the necessary synchronisation. * (TCP, IB/RDMA) to provide the necessary synchronisation.
*/ */
struct workqueue_struct *rds_wq; struct workqueue_struct *rds_wq;
EXPORT_SYMBOL_GPL(rds_wq);
void rds_connect_complete(struct rds_connection *conn) void rds_connect_complete(struct rds_connection *conn)
{ {
...@@ -89,6 +90,7 @@ void rds_connect_complete(struct rds_connection *conn) ...@@ -89,6 +90,7 @@ void rds_connect_complete(struct rds_connection *conn)
queue_delayed_work(rds_wq, &conn->c_send_w, 0); queue_delayed_work(rds_wq, &conn->c_send_w, 0);
queue_delayed_work(rds_wq, &conn->c_recv_w, 0); queue_delayed_work(rds_wq, &conn->c_recv_w, 0);
} }
EXPORT_SYMBOL_GPL(rds_connect_complete);
/* /*
* This random exponential backoff is relied on to eventually resolve racing * This random exponential backoff is relied on to eventually resolve racing
......
...@@ -53,6 +53,7 @@ int rds_trans_register(struct rds_transport *trans) ...@@ -53,6 +53,7 @@ int rds_trans_register(struct rds_transport *trans)
return 0; return 0;
} }
EXPORT_SYMBOL_GPL(rds_trans_register);
void rds_trans_unregister(struct rds_transport *trans) void rds_trans_unregister(struct rds_transport *trans)
{ {
...@@ -63,6 +64,7 @@ void rds_trans_unregister(struct rds_transport *trans) ...@@ -63,6 +64,7 @@ void rds_trans_unregister(struct rds_transport *trans)
up_write(&rds_trans_sem); up_write(&rds_trans_sem);
} }
EXPORT_SYMBOL_GPL(rds_trans_unregister);
struct rds_transport *rds_trans_get_preferred(__be32 addr) struct rds_transport *rds_trans_get_preferred(__be32 addr)
{ {
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment