Lines Matching +full:retain +full:- +full:state +full:- +full:shutdown

14  *      - Redistributions of source code must retain the above
18 * - Redistributions in binary form must reproduce the above
56 * ANY -> ERROR
57 * UP -> DISCONNECTING
58 * ERROR -> DISCONNECTING
59 * DISCONNECTING -> DOWN
60 * DOWN -> CONNECTING
61 * CONNECTING -> UP
63 * Transition to state DISCONNECTING/DOWN:
64 * - Inside the shutdown worker; synchronizes with xmit path
77 printk(KERN_WARNING "%s: Cannot transition to state UP, " in rds_connect_path_complete()
78 "current state is %d\n", in rds_connect_path_complete()
80 atomic_read(&cp->cp_state)); in rds_connect_path_complete()
86 cp->cp_conn, &cp->cp_conn->c_laddr, &cp->cp_conn->c_faddr); in rds_connect_path_complete()
88 cp->cp_reconnect_jiffies = 0; in rds_connect_path_complete()
89 set_bit(0, &cp->cp_conn->c_map_queued); in rds_connect_path_complete()
91 if (!rds_destroy_pending(cp->cp_conn)) { in rds_connect_path_complete()
92 queue_delayed_work(rds_wq, &cp->cp_send_w, 0); in rds_connect_path_complete()
93 queue_delayed_work(rds_wq, &cp->cp_recv_w, 0); in rds_connect_path_complete()
96 cp->cp_conn->c_proposed_version = RDS_PROTOCOL_VERSION; in rds_connect_path_complete()
102 rds_connect_path_complete(&conn->c_path[0], RDS_CONN_CONNECTING); in rds_connect_complete()
122 * will always take several iterations to be re-established.
127 struct rds_connection *conn = cp->cp_conn; in rds_queue_reconnect()
130 conn, &conn->c_laddr, &conn->c_faddr, in rds_queue_reconnect()
131 cp->cp_reconnect_jiffies); in rds_queue_reconnect()
134 if (conn->c_trans->t_type == RDS_TRANS_TCP && in rds_queue_reconnect()
135 rds_addr_cmp(&conn->c_laddr, &conn->c_faddr) >= 0) in rds_queue_reconnect()
138 set_bit(RDS_RECONNECT_PENDING, &cp->cp_flags); in rds_queue_reconnect()
139 if (cp->cp_reconnect_jiffies == 0) { in rds_queue_reconnect()
140 cp->cp_reconnect_jiffies = rds_sysctl_reconnect_min_jiffies; in rds_queue_reconnect()
142 if (!rds_destroy_pending(cp->cp_conn)) in rds_queue_reconnect()
143 queue_delayed_work(rds_wq, &cp->cp_conn_w, 0); in rds_queue_reconnect()
149 rdsdebug("%lu delay %lu ceil conn %p for %pI6c -> %pI6c\n", in rds_queue_reconnect()
150 rand % cp->cp_reconnect_jiffies, cp->cp_reconnect_jiffies, in rds_queue_reconnect()
151 conn, &conn->c_laddr, &conn->c_faddr); in rds_queue_reconnect()
153 if (!rds_destroy_pending(cp->cp_conn)) in rds_queue_reconnect()
154 queue_delayed_work(rds_wq, &cp->cp_conn_w, in rds_queue_reconnect()
155 rand % cp->cp_reconnect_jiffies); in rds_queue_reconnect()
158 cp->cp_reconnect_jiffies = min(cp->cp_reconnect_jiffies * 2, in rds_queue_reconnect()
167 struct rds_connection *conn = cp->cp_conn; in rds_connect_worker()
170 if (cp->cp_index > 0 && in rds_connect_worker()
171 rds_addr_cmp(&cp->cp_conn->c_laddr, &cp->cp_conn->c_faddr) >= 0) in rds_connect_worker()
173 clear_bit(RDS_RECONNECT_PENDING, &cp->cp_flags); in rds_connect_worker()
176 ret = conn->c_trans->conn_path_connect(cp); in rds_connect_worker()
178 conn, &conn->c_laddr, &conn->c_faddr, ret); in rds_connect_worker()
199 clear_bit(RDS_LL_SEND_FULL, &cp->cp_flags); in rds_send_worker()
202 rdsdebug("conn %p ret %d\n", cp->cp_conn, ret); in rds_send_worker()
204 case -EAGAIN: in rds_send_worker()
206 queue_delayed_work(rds_wq, &cp->cp_send_w, 0); in rds_send_worker()
208 case -ENOMEM: in rds_send_worker()
210 queue_delayed_work(rds_wq, &cp->cp_send_w, 2); in rds_send_worker()
226 ret = cp->cp_conn->c_trans->recv_path(cp); in rds_recv_worker()
227 rdsdebug("conn %p ret %d\n", cp->cp_conn, ret); in rds_recv_worker()
229 case -EAGAIN: in rds_recv_worker()
231 queue_delayed_work(rds_wq, &cp->cp_recv_w, 0); in rds_recv_worker()
233 case -ENOMEM: in rds_recv_worker()
235 queue_delayed_work(rds_wq, &cp->cp_recv_w, 2); in rds_recv_worker()
261 return -ENOMEM; in rds_threads_init()
267 * Return 1 if the first is greater. Return -1 if the second is greater.
281 return -1; in rds_addr_cmp()
288 return -1; in rds_addr_cmp()
299 if (addr1->s6_addr32[i] != addr2->s6_addr32[i]) { in rds_addr_cmp()
300 a = ntohl(addr1->s6_addr32[i]); in rds_addr_cmp()
301 b = ntohl(addr2->s6_addr32[i]); in rds_addr_cmp()
303 return -1; in rds_addr_cmp()