Lines Matching refs:cp

74 void rds_connect_path_complete(struct rds_conn_path *cp, int curr)
76 if (!rds_conn_path_transition(cp, curr, RDS_CONN_UP)) {
80 atomic_read(&cp->cp_state));
81 rds_conn_path_drop(cp, false);
86 cp->cp_conn, &cp->cp_conn->c_laddr, &cp->cp_conn->c_faddr);
88 cp->cp_reconnect_jiffies = 0;
89 set_bit(0, &cp->cp_conn->c_map_queued);
91 if (!rds_destroy_pending(cp->cp_conn)) {
92 queue_delayed_work(rds_wq, &cp->cp_send_w, 0);
93 queue_delayed_work(rds_wq, &cp->cp_recv_w, 0);
96 cp->cp_conn->c_proposed_version = RDS_PROTOCOL_VERSION;
124 void rds_queue_reconnect(struct rds_conn_path *cp)
127 struct rds_connection *conn = cp->cp_conn;
131 cp->cp_reconnect_jiffies);
138 set_bit(RDS_RECONNECT_PENDING, &cp->cp_flags);
139 if (cp->cp_reconnect_jiffies == 0) {
140 cp->cp_reconnect_jiffies = rds_sysctl_reconnect_min_jiffies;
142 if (!rds_destroy_pending(cp->cp_conn))
143 queue_delayed_work(rds_wq, &cp->cp_conn_w, 0);
150 rand % cp->cp_reconnect_jiffies, cp->cp_reconnect_jiffies,
153 if (!rds_destroy_pending(cp->cp_conn))
154 queue_delayed_work(rds_wq, &cp->cp_conn_w,
155 rand % cp->cp_reconnect_jiffies);
158 cp->cp_reconnect_jiffies = min(cp->cp_reconnect_jiffies * 2,
164 struct rds_conn_path *cp = container_of(work,
167 struct rds_connection *conn = cp->cp_conn;
170 if (cp->cp_index > 0 &&
171 rds_addr_cmp(&cp->cp_conn->c_laddr, &cp->cp_conn->c_faddr) >= 0)
173 clear_bit(RDS_RECONNECT_PENDING, &cp->cp_flags);
174 ret = rds_conn_path_transition(cp, RDS_CONN_DOWN, RDS_CONN_CONNECTING);
176 ret = conn->c_trans->conn_path_connect(cp);
181 if (rds_conn_path_transition(cp,
184 rds_queue_reconnect(cp);
186 rds_conn_path_error(cp, "connect failed\n");
193 struct rds_conn_path *cp = container_of(work,
198 if (rds_conn_path_state(cp) == RDS_CONN_UP) {
199 clear_bit(RDS_LL_SEND_FULL, &cp->cp_flags);
200 ret = rds_send_xmit(cp);
202 rdsdebug("conn %p ret %d\n", cp->cp_conn, ret);
206 queue_delayed_work(rds_wq, &cp->cp_send_w, 0);
210 queue_delayed_work(rds_wq, &cp->cp_send_w, 2);
220 struct rds_conn_path *cp = container_of(work,
225 if (rds_conn_path_state(cp) == RDS_CONN_UP) {
226 ret = cp->cp_conn->c_trans->recv_path(cp);
227 rdsdebug("conn %p ret %d\n", cp->cp_conn, ret);
231 queue_delayed_work(rds_wq, &cp->cp_recv_w, 0);
235 queue_delayed_work(rds_wq, &cp->cp_recv_w, 2);
245 struct rds_conn_path *cp = container_of(work,
249 rds_conn_shutdown(cp);