Lines Matching refs:rs

108 	struct rdsv3_sock *rs = mr->r_sock;  in rdsv3_destroy_mr()  local
119 mutex_enter(&rs->rs_rdma_lock); in rdsv3_destroy_mr()
122 avl_remove(&rs->rs_rdma_keys, mr); in rdsv3_destroy_mr()
125 mutex_exit(&rs->rs_rdma_lock); in rdsv3_destroy_mr()
143 rdsv3_rdma_drop_keys(struct rdsv3_sock *rs) in rdsv3_rdma_drop_keys() argument
149 mutex_enter(&rs->rs_rdma_lock); in rdsv3_rdma_drop_keys()
150 while ((node = avl_first(&rs->rs_rdma_keys))) { in rdsv3_rdma_drop_keys()
152 if (mr->r_trans == rs->rs_transport) in rdsv3_rdma_drop_keys()
154 avl_remove(&rs->rs_rdma_keys, &mr->r_rb_node); in rdsv3_rdma_drop_keys()
156 mutex_exit(&rs->rs_rdma_lock); in rdsv3_rdma_drop_keys()
159 mutex_enter(&rs->rs_rdma_lock); in rdsv3_rdma_drop_keys()
161 mutex_exit(&rs->rs_rdma_lock); in rdsv3_rdma_drop_keys()
163 if (rs->rs_transport && rs->rs_transport->flush_mrs) in rdsv3_rdma_drop_keys()
164 rs->rs_transport->flush_mrs(); in rdsv3_rdma_drop_keys()
168 __rdsv3_rdma_map(struct rdsv3_sock *rs, struct rds_get_mr_args *args, in __rdsv3_rdma_map() argument
177 if (rs->rs_bound_addr == 0) { in __rdsv3_rdma_map()
182 if (!rs->rs_transport->get_mr) { in __rdsv3_rdma_map()
195 mr->r_trans = rs->rs_transport; in __rdsv3_rdma_map()
196 mr->r_sock = rs; in __rdsv3_rdma_map()
211 trans_private = rs->rs_transport->get_mr(&args->vec, nents, rs, in __rdsv3_rdma_map()
251 mutex_enter(&rs->rs_rdma_lock); in __rdsv3_rdma_map()
252 found = rdsv3_mr_tree_walk(&rs->rs_rdma_keys, mr->r_key, mr); in __rdsv3_rdma_map()
253 mutex_exit(&rs->rs_rdma_lock); in __rdsv3_rdma_map()
270 rdsv3_get_mr(struct rdsv3_sock *rs, const void *optval, int optlen) in rdsv3_get_mr() argument
285 return (__rdsv3_rdma_map(rs, &args, NULL, NULL)); in rdsv3_get_mr()
289 rdsv3_get_mr_for_dest(struct rdsv3_sock *rs, const void *optval, in rdsv3_get_mr_for_dest() argument
315 return (__rdsv3_rdma_map(rs, &new_args, NULL, NULL)); in rdsv3_get_mr_for_dest()
322 rdsv3_free_mr(struct rdsv3_sock *rs, const void *optval, int optlen) in rdsv3_free_mr() argument
341 if (!rs->rs_transport || !rs->rs_transport->flush_mrs) in rdsv3_free_mr()
343 rs->rs_transport->flush_mrs(); in rdsv3_free_mr()
352 mutex_enter(&rs->rs_rdma_lock); in rdsv3_free_mr()
353 mr = rdsv3_mr_tree_walk(&rs->rs_rdma_keys, in rdsv3_free_mr()
356 avl_remove(&rs->rs_rdma_keys, &mr->r_rb_node); in rdsv3_free_mr()
361 mutex_exit(&rs->rs_rdma_lock); in rdsv3_free_mr()
382 rdsv3_rdma_unuse(struct rdsv3_sock *rs, uint32_t r_key, int force) in rdsv3_rdma_unuse() argument
389 mutex_enter(&rs->rs_rdma_lock); in rdsv3_rdma_unuse()
390 mr = rdsv3_mr_tree_walk(&rs->rs_rdma_keys, r_key, NULL); in rdsv3_rdma_unuse()
394 mutex_exit(&rs->rs_rdma_lock); in rdsv3_rdma_unuse()
399 avl_remove(&rs->rs_rdma_keys, &mr->r_rb_node); in rdsv3_rdma_unuse()
405 mutex_exit(&rs->rs_rdma_lock); in rdsv3_rdma_unuse()
444 rdsv3_rdma_prepare(struct rdsv3_sock *rs, struct rds_rdma_args *args) in rdsv3_rdma_prepare() argument
457 if (rs->rs_bound_addr == 0) { in rdsv3_rdma_prepare()
477 op->r_recverr = rs->rs_recverr; in rdsv3_rdma_prepare()
534 rs->rs_user_addr = vec.addr; in rdsv3_rdma_prepare()
535 rs->rs_user_bytes = vec.bytes; in rdsv3_rdma_prepare()
586 rdsv3_cmsg_rdma_args(struct rdsv3_sock *rs, struct rdsv3_message *rm, in rdsv3_cmsg_rdma_args() argument
601 op = rdsv3_rdma_prepare(rs, (struct rds_rdma_args *)buf); in rdsv3_cmsg_rdma_args()
615 rdsv3_cmsg_rdma_dest(struct rdsv3_sock *rs, struct rdsv3_message *rm, in rdsv3_cmsg_rdma_dest() argument
637 mutex_enter(&rs->rs_rdma_lock); in rdsv3_cmsg_rdma_dest()
638 mr = rdsv3_mr_tree_walk(&rs->rs_rdma_keys, r_key, NULL); in rdsv3_cmsg_rdma_dest()
643 mutex_exit(&rs->rs_rdma_lock); in rdsv3_cmsg_rdma_dest()
659 rdsv3_cmsg_rdma_map(struct rdsv3_sock *rs, struct rdsv3_message *rm, in rdsv3_cmsg_rdma_map() argument
674 status = __rdsv3_rdma_map(rs, (struct rds_get_mr_args *)buf, in rdsv3_cmsg_rdma_map()