Lines Matching refs:rs
61 struct rds_sock *rs; in rds_find_bound() local
63 rs = rhashtable_lookup_fast(&bind_hash_table, &key, ht_parms); in rds_find_bound()
64 if (rs && !sock_flag(rds_rs_to_sk(rs), SOCK_DEAD)) in rds_find_bound()
65 rds_sock_addref(rs); in rds_find_bound()
67 rs = NULL; in rds_find_bound()
69 rdsdebug("returning rs %p for %pI4:%u\n", rs, &addr, in rds_find_bound()
72 return rs; in rds_find_bound()
76 static int rds_add_bound(struct rds_sock *rs, __be32 addr, __be16 *port) in rds_add_bound() argument
98 rs->rs_bound_key = key; in rds_add_bound()
99 rs->rs_bound_addr = addr; in rds_add_bound()
100 rs->rs_bound_port = cpu_to_be16(rover); in rds_add_bound()
101 rs->rs_bound_node.next = NULL; in rds_add_bound()
102 rds_sock_addref(rs); in rds_add_bound()
104 &rs->rs_bound_node, ht_parms)) { in rds_add_bound()
105 *port = rs->rs_bound_port; in rds_add_bound()
108 rs, &addr, (int)ntohs(*port)); in rds_add_bound()
111 rds_sock_put(rs); in rds_add_bound()
120 void rds_remove_bound(struct rds_sock *rs) in rds_remove_bound() argument
123 if (!rs->rs_bound_addr) in rds_remove_bound()
127 rs, &rs->rs_bound_addr, in rds_remove_bound()
128 ntohs(rs->rs_bound_port)); in rds_remove_bound()
130 rhashtable_remove_fast(&bind_hash_table, &rs->rs_bound_node, ht_parms); in rds_remove_bound()
131 rds_sock_put(rs); in rds_remove_bound()
132 rs->rs_bound_addr = 0; in rds_remove_bound()
139 struct rds_sock *rs = rds_sk_to_rs(sk); in rds_bind() local
147 rs->rs_bound_addr || in rds_bind()
153 ret = rds_add_bound(rs, sin->sin_addr.s_addr, &sin->sin_port); in rds_bind()
157 if (rs->rs_transport) { /* previously bound */ in rds_bind()
158 trans = rs->rs_transport; in rds_bind()
162 rds_remove_bound(rs); in rds_bind()
172 rds_remove_bound(rs); in rds_bind()
178 rs->rs_transport = trans; in rds_bind()