RDS: add t_mp_capable bit to be set by MP capable transports
authorSowmini Varadhan <sowmini.varadhan@oracle.com>
Mon, 13 Jun 2016 16:44:27 +0000 (09:44 -0700)
committerDavid S. Miller <davem@davemloft.net>
Wed, 15 Jun 2016 06:50:41 +0000 (23:50 -0700)
The t_mp_capable bit will be used in the core rds module
to support multipathing logic when the transport supports it.

Signed-off-by: Sowmini Varadhan <sowmini.varadhan@oracle.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
net/rds/rds.h

index ca31a07f70f56fd2f0dd9093696af4b20caebd32..28f001cbc8934f8cec7e6a606aa962d51200dee5 100644 (file)
@@ -446,7 +446,8 @@ struct rds_transport {
        char                    t_name[TRANSNAMSIZ];
        struct list_head        t_item;
        struct module           *t_owner;
-       unsigned int            t_prefer_loopback:1;
+       unsigned int            t_prefer_loopback:1,
+                               t_mp_capable:1;
        unsigned int            t_type;
 
        int (*laddr_check)(struct net *net, __be32 addr);
@@ -673,6 +674,7 @@ rds_conn_path_transition(struct rds_conn_path *cp, int old, int new)
 static inline int
 rds_conn_transition(struct rds_connection *conn, int old, int new)
 {
+       WARN_ON(conn->c_trans->t_mp_capable);
        return rds_conn_path_transition(&conn->c_path[0], old, new);
 }
 
@@ -685,6 +687,7 @@ rds_conn_path_state(struct rds_conn_path *cp)
 static inline int
 rds_conn_state(struct rds_connection *conn)
 {
+       WARN_ON(conn->c_trans->t_mp_capable);
        return rds_conn_path_state(&conn->c_path[0]);
 }
 
@@ -697,6 +700,7 @@ rds_conn_path_up(struct rds_conn_path *cp)
 static inline int
 rds_conn_up(struct rds_connection *conn)
 {
+       WARN_ON(conn->c_trans->t_mp_capable);
        return rds_conn_path_up(&conn->c_path[0]);
 }
 
@@ -709,6 +713,7 @@ rds_conn_path_connecting(struct rds_conn_path *cp)
 static inline int
 rds_conn_connecting(struct rds_connection *conn)
 {
+       WARN_ON(conn->c_trans->t_mp_capable);
        return rds_conn_path_connecting(&conn->c_path[0]);
 }