The second installment of changes to enable multipath support in RDS-TCP. This series implements the changes in rds-tcp so that the rds_conn_path has a pointer to the rds_tcp_connection in cp_transport_data. Struct rds_tcp_connection keeps track of the inet_sk per path in t_sock. The ->sk_user_data in turn is a pointer to the rds_conn_path. With this set of changes, rds_tcp has the needed plumbing to handle multiple paths(socket) per rds_connection.
Sowmini Varadhan (9): RDS: Rework path specific indirections RDS: TCP: Remove dead logic around c_passive in rds-tcp RDS: TCP: Make rds_tcp_connection track the rds_conn_path RDS: TCP: Refactor connection destruction to handle multiple paths RDS: TCP: make ->sk_user_data point to a rds_conn_path RDS: TCP: make receive path use the rds_conn_path RDS: TCP: Hooks to set up a single connection path RDS: TCP: Simplify reconnect to avoid duelling reconnnect attempts RDS: Do not send a pong to an incoming ping with 0 src port net/rds/connection.c | 39 ++++++-------- net/rds/ib.c | 8 ++-- net/rds/ib.h | 8 ++-- net/rds/ib_cm.c | 6 ++- net/rds/ib_recv.c | 3 +- net/rds/ib_send.c | 3 +- net/rds/loop.c | 14 +++--- net/rds/rds.h | 7 +-- net/rds/recv.c | 4 ++ net/rds/send.c | 16 ++----- net/rds/tcp.c | 130 +++++++++++++++++++++++++++++++------------------ net/rds/tcp.h | 22 ++++---- net/rds/tcp_connect.c | 38 ++++++++------- net/rds/tcp_listen.c | 16 +++--- net/rds/tcp_recv.c | 39 ++++++++------- net/rds/tcp_send.c | 20 ++++---- net/rds/threads.c | 12 +++- 17 files changed, 211 insertions(+), 174 deletions(-)