aboutsummaryrefslogtreecommitdiffstats
path: root/net/rds
diff options
context:
space:
mode:
authorSowmini Varadhan <sowmini.varadhan@oracle.com>2016-06-13 12:44:29 -0400
committerDavid S. Miller <davem@davemloft.net>2016-06-15 02:50:42 -0400
commit5e833e025d9dc3f61c04e74936a14419efb6a032 (patch)
tree2713c6d03ce866b5e40c76df593d38764f0e76f2 /net/rds
parentef9e62c2e5087cb9bc713e3d9776336e1bb40df1 (diff)
RDS: rds_inc_path_init() helper function for MP capable transports
t_mp_capable transports can use rds_inc_path_init to initialize all fields in struct rds_incoming, including the i_conn_path. Signed-off-by: Sowmini Varadhan <sowmini.varadhan@oracle.com> Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'net/rds')
-rw-r--r--net/rds/rds.h2
-rw-r--r--net/rds/recv.c14
2 files changed, 16 insertions, 0 deletions
diff --git a/net/rds/rds.h b/net/rds/rds.h
index 7c85b2d792b6..c3b14ccd7037 100644
--- a/net/rds/rds.h
+++ b/net/rds/rds.h
@@ -764,6 +764,8 @@ void rds_page_exit(void);
764/* recv.c */ 764/* recv.c */
765void rds_inc_init(struct rds_incoming *inc, struct rds_connection *conn, 765void rds_inc_init(struct rds_incoming *inc, struct rds_connection *conn,
766 __be32 saddr); 766 __be32 saddr);
767void rds_inc_path_init(struct rds_incoming *inc, struct rds_conn_path *conn,
768 __be32 saddr);
767void rds_inc_put(struct rds_incoming *inc); 769void rds_inc_put(struct rds_incoming *inc);
768void rds_recv_incoming(struct rds_connection *conn, __be32 saddr, __be32 daddr, 770void rds_recv_incoming(struct rds_connection *conn, __be32 saddr, __be32 daddr,
769 struct rds_incoming *inc, gfp_t gfp); 771 struct rds_incoming *inc, gfp_t gfp);
diff --git a/net/rds/recv.c b/net/rds/recv.c
index e36652cfbd35..6d7bd63121fc 100644
--- a/net/rds/recv.c
+++ b/net/rds/recv.c
@@ -53,6 +53,20 @@ void rds_inc_init(struct rds_incoming *inc, struct rds_connection *conn,
53} 53}
54EXPORT_SYMBOL_GPL(rds_inc_init); 54EXPORT_SYMBOL_GPL(rds_inc_init);
55 55
56void rds_inc_path_init(struct rds_incoming *inc, struct rds_conn_path *cp,
57 __be32 saddr)
58{
59 atomic_set(&inc->i_refcount, 1);
60 INIT_LIST_HEAD(&inc->i_item);
61 inc->i_conn = cp->cp_conn;
62 inc->i_conn_path = cp;
63 inc->i_saddr = saddr;
64 inc->i_rdma_cookie = 0;
65 inc->i_rx_tstamp.tv_sec = 0;
66 inc->i_rx_tstamp.tv_usec = 0;
67}
68EXPORT_SYMBOL_GPL(rds_inc_path_init);
69
56static void rds_inc_addref(struct rds_incoming *inc) 70static void rds_inc_addref(struct rds_incoming *inc)
57{ 71{
58 rdsdebug("addref inc %p ref %d\n", inc, atomic_read(&inc->i_refcount)); 72 rdsdebug("addref inc %p ref %d\n", inc, atomic_read(&inc->i_refcount));