Lines Matching refs:rs
70 struct rds_sock *rs; in rds_release() local
75 rs = rds_sk_to_rs(sk); in rds_release()
81 rds_clear_recv_queue(rs); in rds_release()
82 rds_cong_remove_socket(rs); in rds_release()
89 rds_remove_bound(rs); in rds_release()
92 rds_send_drop_to(rs, NULL); in rds_release()
93 rds_rdma_drop_keys(rs); in rds_release()
94 rds_notify_queue_get(rs, NULL); in rds_release()
97 list_del_init(&rs->rs_item); in rds_release()
101 rds_trans_put(rs->rs_transport); in rds_release()
118 void rds_wake_sk_sleep(struct rds_sock *rs) in rds_wake_sk_sleep() argument
122 read_lock_irqsave(&rs->rs_recv_lock, flags); in rds_wake_sk_sleep()
123 __rds_wake_sk_sleep(rds_rs_to_sk(rs)); in rds_wake_sk_sleep()
124 read_unlock_irqrestore(&rs->rs_recv_lock, flags); in rds_wake_sk_sleep()
131 struct rds_sock *rs = rds_sk_to_rs(sock->sk); in rds_getname() local
137 if (!rs->rs_conn_addr) in rds_getname()
140 sin->sin_port = rs->rs_conn_port; in rds_getname()
141 sin->sin_addr.s_addr = rs->rs_conn_addr; in rds_getname()
143 sin->sin_port = rs->rs_bound_port; in rds_getname()
144 sin->sin_addr.s_addr = rs->rs_bound_addr; in rds_getname()
174 struct rds_sock *rs = rds_sk_to_rs(sk); in rds_poll() local
180 if (rs->rs_seen_congestion) in rds_poll()
183 read_lock_irqsave(&rs->rs_recv_lock, flags); in rds_poll()
184 if (!rs->rs_cong_monitor) { in rds_poll()
188 if (rds_cong_updated_since(&rs->rs_cong_track)) in rds_poll()
191 spin_lock(&rs->rs_lock); in rds_poll()
192 if (rs->rs_cong_notify) in rds_poll()
194 spin_unlock(&rs->rs_lock); in rds_poll()
196 if (!list_empty(&rs->rs_recv_queue) || in rds_poll()
197 !list_empty(&rs->rs_notify_queue)) in rds_poll()
199 if (rs->rs_snd_bytes < rds_sk_sndbuf(rs)) in rds_poll()
201 read_unlock_irqrestore(&rs->rs_recv_lock, flags); in rds_poll()
205 rs->rs_seen_congestion = 0; in rds_poll()
215 static int rds_cancel_sent_to(struct rds_sock *rs, char __user *optval, in rds_cancel_sent_to() argument
222 if (rs->rs_bound_addr == 0) { in rds_cancel_sent_to()
237 rds_send_drop_to(rs, &sin); in rds_cancel_sent_to()
255 static int rds_cong_monitor(struct rds_sock *rs, char __user *optval, in rds_cong_monitor() argument
260 ret = rds_set_bool_option(&rs->rs_cong_monitor, optval, optlen); in rds_cong_monitor()
262 if (rs->rs_cong_monitor) { in rds_cong_monitor()
263 rds_cong_add_socket(rs); in rds_cong_monitor()
265 rds_cong_remove_socket(rs); in rds_cong_monitor()
266 rs->rs_cong_mask = 0; in rds_cong_monitor()
267 rs->rs_cong_notify = 0; in rds_cong_monitor()
276 struct rds_sock *rs = rds_sk_to_rs(sock->sk); in rds_setsockopt() local
286 ret = rds_cancel_sent_to(rs, optval, optlen); in rds_setsockopt()
289 ret = rds_get_mr(rs, optval, optlen); in rds_setsockopt()
292 ret = rds_get_mr_for_dest(rs, optval, optlen); in rds_setsockopt()
295 ret = rds_free_mr(rs, optval, optlen); in rds_setsockopt()
298 ret = rds_set_bool_option(&rs->rs_recverr, optval, optlen); in rds_setsockopt()
301 ret = rds_cong_monitor(rs, optval, optlen); in rds_setsockopt()
313 struct rds_sock *rs = rds_sk_to_rs(sock->sk); in rds_getsockopt() local
334 if (put_user(rs->rs_recverr, (int __user *) optval) || in rds_getsockopt()
354 struct rds_sock *rs = rds_sk_to_rs(sk); in rds_connect() local
374 rs->rs_conn_addr = sin->sin_addr.s_addr; in rds_connect()
375 rs->rs_conn_port = sin->sin_port; in rds_connect()
411 struct rds_sock *rs; in __rds_create() local
417 rs = rds_sk_to_rs(sk); in __rds_create()
418 spin_lock_init(&rs->rs_lock); in __rds_create()
419 rwlock_init(&rs->rs_recv_lock); in __rds_create()
420 INIT_LIST_HEAD(&rs->rs_send_queue); in __rds_create()
421 INIT_LIST_HEAD(&rs->rs_recv_queue); in __rds_create()
422 INIT_LIST_HEAD(&rs->rs_notify_queue); in __rds_create()
423 INIT_LIST_HEAD(&rs->rs_cong_list); in __rds_create()
424 spin_lock_init(&rs->rs_rdma_lock); in __rds_create()
425 rs->rs_rdma_keys = RB_ROOT; in __rds_create()
428 list_add_tail(&rs->rs_item, &rds_sock_list); in __rds_create()
450 void rds_sock_addref(struct rds_sock *rs) in rds_sock_addref() argument
452 sock_hold(rds_rs_to_sk(rs)); in rds_sock_addref()
455 void rds_sock_put(struct rds_sock *rs) in rds_sock_put() argument
457 sock_put(rds_rs_to_sk(rs)); in rds_sock_put()
470 struct rds_sock *rs; in rds_sock_inc_info() local
478 list_for_each_entry(rs, &rds_sock_list, rs_item) { in rds_sock_inc_info()
479 read_lock(&rs->rs_recv_lock); in rds_sock_inc_info()
482 list_for_each_entry(inc, &rs->rs_recv_queue, i_item) { in rds_sock_inc_info()
486 rs->rs_bound_addr, 1); in rds_sock_inc_info()
489 read_unlock(&rs->rs_recv_lock); in rds_sock_inc_info()
503 struct rds_sock *rs; in rds_sock_info() local
512 list_for_each_entry(rs, &rds_sock_list, rs_item) { in rds_sock_info()
513 sinfo.sndbuf = rds_sk_sndbuf(rs); in rds_sock_info()
514 sinfo.rcvbuf = rds_sk_rcvbuf(rs); in rds_sock_info()
515 sinfo.bound_addr = rs->rs_bound_addr; in rds_sock_info()
516 sinfo.connected_addr = rs->rs_conn_addr; in rds_sock_info()
517 sinfo.bound_port = rs->rs_bound_port; in rds_sock_info()
518 sinfo.connected_port = rs->rs_conn_port; in rds_sock_info()
519 sinfo.inum = sock_i_ino(rds_rs_to_sk(rs)); in rds_sock_info()