Lines Matching refs:sess

70 static bool rtrs_srv_change_state(struct rtrs_srv_sess *sess,  in rtrs_srv_change_state()  argument
76 spin_lock_irq(&sess->state_lock); in rtrs_srv_change_state()
77 old_state = sess->state; in rtrs_srv_change_state()
96 sess->state = new_state; in rtrs_srv_change_state()
97 spin_unlock_irq(&sess->state_lock); in rtrs_srv_change_state()
109 static void rtrs_srv_free_ops_ids(struct rtrs_srv_sess *sess) in rtrs_srv_free_ops_ids() argument
111 struct rtrs_srv *srv = sess->srv; in rtrs_srv_free_ops_ids()
114 if (sess->ops_ids) { in rtrs_srv_free_ops_ids()
116 free_id(sess->ops_ids[i]); in rtrs_srv_free_ops_ids()
117 kfree(sess->ops_ids); in rtrs_srv_free_ops_ids()
118 sess->ops_ids = NULL; in rtrs_srv_free_ops_ids()
130 struct rtrs_srv_sess *sess = container_of(ref, struct rtrs_srv_sess, ids_inflight_ref); in rtrs_srv_inflight_ref_release() local
132 percpu_ref_exit(&sess->ids_inflight_ref); in rtrs_srv_inflight_ref_release()
133 complete(&sess->complete_done); in rtrs_srv_inflight_ref_release()
136 static int rtrs_srv_alloc_ops_ids(struct rtrs_srv_sess *sess) in rtrs_srv_alloc_ops_ids() argument
138 struct rtrs_srv *srv = sess->srv; in rtrs_srv_alloc_ops_ids()
142 sess->ops_ids = kcalloc(srv->queue_depth, sizeof(*sess->ops_ids), in rtrs_srv_alloc_ops_ids()
144 if (!sess->ops_ids) in rtrs_srv_alloc_ops_ids()
152 sess->ops_ids[i] = id; in rtrs_srv_alloc_ops_ids()
155 ret = percpu_ref_init(&sess->ids_inflight_ref, in rtrs_srv_alloc_ops_ids()
161 init_completion(&sess->complete_done); in rtrs_srv_alloc_ops_ids()
166 rtrs_srv_free_ops_ids(sess); in rtrs_srv_alloc_ops_ids()
170 static inline void rtrs_srv_get_ops_ids(struct rtrs_srv_sess *sess) in rtrs_srv_get_ops_ids() argument
172 percpu_ref_get(&sess->ids_inflight_ref); in rtrs_srv_get_ops_ids()
175 static inline void rtrs_srv_put_ops_ids(struct rtrs_srv_sess *sess) in rtrs_srv_put_ops_ids() argument
177 percpu_ref_put(&sess->ids_inflight_ref); in rtrs_srv_put_ops_ids()
183 struct rtrs_sess *s = con->c.sess; in rtrs_srv_reg_mr_done()
184 struct rtrs_srv_sess *sess = to_srv_sess(s); in rtrs_srv_reg_mr_done() local
189 close_sess(sess); in rtrs_srv_reg_mr_done()
200 struct rtrs_sess *s = id->con->c.sess; in rdma_write_sg()
201 struct rtrs_srv_sess *sess = to_srv_sess(s); in rdma_write_sg() local
202 dma_addr_t dma_addr = sess->dma_addr[id->msg_id]; in rdma_write_sg()
236 plist->lkey = sess->s.dev->ib_pd->local_dma_lkey; in rdma_write_sg()
287 srv_mr = &sess->mrs[id->msg_id]; in rdma_write_sg()
303 list.lkey = sess->s.dev->ib_pd->local_dma_lkey; in rdma_write_sg()
307 ib_dma_sync_single_for_device(sess->s.dev->ib_dev, in rdma_write_sg()
320 ib_dma_sync_single_for_device(sess->s.dev->ib_dev, dma_addr, in rdma_write_sg()
344 struct rtrs_sess *s = con->c.sess; in send_io_resp_imm()
345 struct rtrs_srv_sess *sess = to_srv_sess(s); in send_io_resp_imm() local
405 srv_mr = &sess->mrs[id->msg_id]; in send_io_resp_imm()
422 list.lkey = sess->s.dev->ib_pd->local_dma_lkey; in send_io_resp_imm()
426 ib_dma_sync_single_for_device(sess->s.dev->ib_dev, in send_io_resp_imm()
447 void close_sess(struct rtrs_srv_sess *sess) in close_sess() argument
449 if (rtrs_srv_change_state(sess, RTRS_SRV_CLOSING)) in close_sess()
450 queue_work(rtrs_wq, &sess->close_work); in close_sess()
451 WARN_ON(sess->state != RTRS_SRV_CLOSING); in close_sess()
483 struct rtrs_srv_sess *sess; in rtrs_srv_resp_rdma() local
492 s = con->c.sess; in rtrs_srv_resp_rdma()
493 sess = to_srv_sess(s); in rtrs_srv_resp_rdma()
497 if (sess->state != RTRS_SRV_CONNECTED) { in rtrs_srv_resp_rdma()
500 kobject_name(&sess->kobj), in rtrs_srv_resp_rdma()
501 rtrs_srv_state_str(sess->state)); in rtrs_srv_resp_rdma()
505 struct rtrs_srv_mr *mr = &sess->mrs[id->msg_id]; in rtrs_srv_resp_rdma()
511 kobject_name(&sess->kobj), in rtrs_srv_resp_rdma()
527 kobject_name(&sess->kobj)); in rtrs_srv_resp_rdma()
528 close_sess(sess); in rtrs_srv_resp_rdma()
531 rtrs_srv_put_ops_ids(sess); in rtrs_srv_resp_rdma()
547 static void unmap_cont_bufs(struct rtrs_srv_sess *sess) in unmap_cont_bufs() argument
551 for (i = 0; i < sess->mrs_num; i++) { in unmap_cont_bufs()
554 srv_mr = &sess->mrs[i]; in unmap_cont_bufs()
555 rtrs_iu_free(srv_mr->iu, sess->s.dev->ib_dev, 1); in unmap_cont_bufs()
557 ib_dma_unmap_sg(sess->s.dev->ib_dev, srv_mr->sgt.sgl, in unmap_cont_bufs()
561 kfree(sess->mrs); in unmap_cont_bufs()
564 static int map_cont_bufs(struct rtrs_srv_sess *sess) in map_cont_bufs() argument
566 struct rtrs_srv *srv = sess->srv; in map_cont_bufs()
567 struct rtrs_sess *ss = &sess->s; in map_cont_bufs()
584 sess->s.dev->ib_dev->attrs.max_fast_reg_page_list_len; in map_cont_bufs()
589 sess->mrs = kcalloc(mrs_num, sizeof(*sess->mrs), GFP_KERNEL); in map_cont_bufs()
590 if (!sess->mrs) in map_cont_bufs()
593 sess->mrs_num = mrs_num; in map_cont_bufs()
596 struct rtrs_srv_mr *srv_mr = &sess->mrs[mri]; in map_cont_bufs()
615 nr = ib_dma_map_sg(sess->s.dev->ib_dev, sgt->sgl, in map_cont_bufs()
621 mr = ib_alloc_mr(sess->s.dev->ib_pd, IB_MR_TYPE_MEM_REG, in map_cont_bufs()
637 GFP_KERNEL, sess->s.dev->ib_dev, in map_cont_bufs()
647 sess->dma_addr[chunks + i] = sg_dma_address(s); in map_cont_bufs()
655 srv_mr = &sess->mrs[mri]; in map_cont_bufs()
658 rtrs_iu_free(srv_mr->iu, sess->s.dev->ib_dev, 1); in map_cont_bufs()
662 ib_dma_unmap_sg(sess->s.dev->ib_dev, sgt->sgl, in map_cont_bufs()
667 kfree(sess->mrs); in map_cont_bufs()
673 sess->mem_bits = (MAX_IMM_PAYL_BITS - chunk_bits); in map_cont_bufs()
680 close_sess(to_srv_sess(c->sess)); in rtrs_srv_hb_err_handler()
683 static void rtrs_srv_init_hb(struct rtrs_srv_sess *sess) in rtrs_srv_init_hb() argument
685 rtrs_init_hb(&sess->s, &io_comp_cqe, in rtrs_srv_init_hb()
692 static void rtrs_srv_start_hb(struct rtrs_srv_sess *sess) in rtrs_srv_start_hb() argument
694 rtrs_start_hb(&sess->s); in rtrs_srv_start_hb()
697 static void rtrs_srv_stop_hb(struct rtrs_srv_sess *sess) in rtrs_srv_stop_hb() argument
699 rtrs_stop_hb(&sess->s); in rtrs_srv_stop_hb()
705 struct rtrs_sess *s = con->c.sess; in rtrs_srv_info_rsp_done()
706 struct rtrs_srv_sess *sess = to_srv_sess(s); in rtrs_srv_info_rsp_done() local
710 rtrs_iu_free(iu, sess->s.dev->ib_dev, 1); in rtrs_srv_info_rsp_done()
715 close_sess(sess); in rtrs_srv_info_rsp_done()
721 static void rtrs_srv_sess_up(struct rtrs_srv_sess *sess) in rtrs_srv_sess_up() argument
723 struct rtrs_srv *srv = sess->srv; in rtrs_srv_sess_up()
734 sess->established = true; in rtrs_srv_sess_up()
737 static void rtrs_srv_sess_down(struct rtrs_srv_sess *sess) in rtrs_srv_sess_down() argument
739 struct rtrs_srv *srv = sess->srv; in rtrs_srv_sess_down()
742 if (!sess->established) in rtrs_srv_sess_down()
745 sess->established = false; in rtrs_srv_sess_down()
757 struct rtrs_srv_sess *sess; in exist_sessname() local
770 list_for_each_entry(sess, &srv->paths_list, s.entry) { in exist_sessname()
771 if (strlen(sess->s.sessname) == strlen(sessname) && in exist_sessname()
772 !strcmp(sess->s.sessname, sessname)) { in exist_sessname()
785 static int post_recv_sess(struct rtrs_srv_sess *sess);
791 struct rtrs_sess *s = con->c.sess; in process_info_req()
792 struct rtrs_srv_sess *sess = to_srv_sess(s); in process_info_req() local
800 err = post_recv_sess(sess); in process_info_req()
811 if (exist_sessname(sess->srv->ctx, in process_info_req()
812 msg->sessname, &sess->srv->paths_uuid)) { in process_info_req()
816 strscpy(sess->s.sessname, msg->sessname, sizeof(sess->s.sessname)); in process_info_req()
818 rwr = kcalloc(sess->mrs_num, sizeof(*rwr), GFP_KERNEL); in process_info_req()
823 tx_sz += sizeof(rsp->desc[0]) * sess->mrs_num; in process_info_req()
824 tx_iu = rtrs_iu_alloc(1, tx_sz, GFP_KERNEL, sess->s.dev->ib_dev, in process_info_req()
833 rsp->sg_cnt = cpu_to_le16(sess->mrs_num); in process_info_req()
835 for (mri = 0; mri < sess->mrs_num; mri++) { in process_info_req()
836 struct ib_mr *mr = sess->mrs[mri].mr; in process_info_req()
857 err = rtrs_srv_create_sess_files(sess); in process_info_req()
860 kobject_get(&sess->kobj); in process_info_req()
861 get_device(&sess->srv->dev); in process_info_req()
862 rtrs_srv_change_state(sess, RTRS_SRV_CONNECTED); in process_info_req()
863 rtrs_srv_start_hb(sess); in process_info_req()
871 rtrs_srv_sess_up(sess); in process_info_req()
873 ib_dma_sync_single_for_device(sess->s.dev->ib_dev, tx_iu->dma_addr, in process_info_req()
881 rtrs_iu_free(tx_iu, sess->s.dev->ib_dev, 1); in process_info_req()
892 struct rtrs_sess *s = con->c.sess; in rtrs_srv_info_req_done()
893 struct rtrs_srv_sess *sess = to_srv_sess(s); in rtrs_srv_info_req_done() local
913 ib_dma_sync_single_for_cpu(sess->s.dev->ib_dev, iu->dma_addr, in rtrs_srv_info_req_done()
926 rtrs_iu_free(iu, sess->s.dev->ib_dev, 1); in rtrs_srv_info_req_done()
929 close_sess(sess); in rtrs_srv_info_req_done()
935 struct rtrs_sess *s = con->c.sess; in post_recv_info_req()
936 struct rtrs_srv_sess *sess = to_srv_sess(s); in post_recv_info_req() local
941 GFP_KERNEL, sess->s.dev->ib_dev, in post_recv_info_req()
949 rtrs_iu_free(rx_iu, sess->s.dev->ib_dev, 1); in post_recv_info_req()
969 static int post_recv_sess(struct rtrs_srv_sess *sess) in post_recv_sess() argument
971 struct rtrs_srv *srv = sess->srv; in post_recv_sess()
972 struct rtrs_sess *s = &sess->s; in post_recv_sess()
976 for (cid = 0; cid < sess->s.con_num; cid++) { in post_recv_sess()
982 err = post_recv_io(to_srv_con(sess->s.con[cid]), q_size); in post_recv_sess()
996 struct rtrs_sess *s = con->c.sess; in process_read()
997 struct rtrs_srv_sess *sess = to_srv_sess(s); in process_read() local
998 struct rtrs_srv *srv = sess->srv; in process_read()
1006 if (sess->state != RTRS_SRV_CONNECTED) { in process_read()
1009 rtrs_srv_state_str(sess->state)); in process_read()
1017 rtrs_srv_get_ops_ids(sess); in process_read()
1018 rtrs_srv_update_rdma_stats(sess->stats, off, READ); in process_read()
1019 id = sess->ops_ids[buf_id]; in process_read()
1045 close_sess(sess); in process_read()
1047 rtrs_srv_put_ops_ids(sess); in process_read()
1054 struct rtrs_sess *s = con->c.sess; in process_write()
1055 struct rtrs_srv_sess *sess = to_srv_sess(s); in process_write() local
1056 struct rtrs_srv *srv = sess->srv; in process_write()
1064 if (sess->state != RTRS_SRV_CONNECTED) { in process_write()
1067 rtrs_srv_state_str(sess->state)); in process_write()
1070 rtrs_srv_get_ops_ids(sess); in process_write()
1071 rtrs_srv_update_rdma_stats(sess->stats, off, WRITE); in process_write()
1072 id = sess->ops_ids[buf_id]; in process_write()
1097 close_sess(sess); in process_write()
1099 rtrs_srv_put_ops_ids(sess); in process_write()
1105 struct rtrs_sess *s = con->c.sess; in process_io_req()
1106 struct rtrs_srv_sess *sess = to_srv_sess(s); in process_io_req() local
1110 ib_dma_sync_single_for_cpu(sess->s.dev->ib_dev, sess->dma_addr[id], in process_io_req()
1132 close_sess(sess); in process_io_req()
1140 struct rtrs_sess *s = con->c.sess; in rtrs_srv_inv_rkey_done()
1141 struct rtrs_srv_sess *sess = to_srv_sess(s); in rtrs_srv_inv_rkey_done() local
1142 struct rtrs_srv *srv = sess->srv; in rtrs_srv_inv_rkey_done()
1149 close_sess(sess); in rtrs_srv_inv_rkey_done()
1197 struct rtrs_sess *s = con->c.sess; in rtrs_srv_rdma_done()
1198 struct rtrs_srv_sess *sess = to_srv_sess(s); in rtrs_srv_rdma_done() local
1199 struct rtrs_srv *srv = sess->srv; in rtrs_srv_rdma_done()
1209 close_sess(sess); in rtrs_srv_rdma_done()
1225 close_sess(sess); in rtrs_srv_rdma_done()
1234 msg_id = imm_payload >> sess->mem_bits; in rtrs_srv_rdma_done()
1235 off = imm_payload & ((1 << sess->mem_bits) - 1); in rtrs_srv_rdma_done()
1239 close_sess(sess); in rtrs_srv_rdma_done()
1243 struct rtrs_srv_mr *mr = &sess->mrs[msg_id]; in rtrs_srv_rdma_done()
1251 close_sess(sess); in rtrs_srv_rdma_done()
1260 rtrs_send_hb_ack(&sess->s); in rtrs_srv_rdma_done()
1263 sess->s.hb_missed_cnt = 0; in rtrs_srv_rdma_done()
1294 struct rtrs_srv_sess *sess; in rtrs_srv_get_sess_name() local
1298 list_for_each_entry(sess, &srv->paths_list, s.entry) { in rtrs_srv_get_sess_name()
1299 if (sess->state != RTRS_SRV_CONNECTED) in rtrs_srv_get_sess_name()
1301 strscpy(sessname, sess->s.sessname, in rtrs_srv_get_sess_name()
1302 min_t(size_t, sizeof(sess->s.sessname), len)); in rtrs_srv_get_sess_name()
1322 static int find_next_bit_ring(struct rtrs_srv_sess *sess) in find_next_bit_ring() argument
1324 struct ib_device *ib_dev = sess->s.dev->ib_dev; in find_next_bit_ring()
1327 v = cpumask_next(sess->cur_cq_vector, &cq_affinity_mask); in find_next_bit_ring()
1333 static int rtrs_srv_get_next_cq_vector(struct rtrs_srv_sess *sess) in rtrs_srv_get_next_cq_vector() argument
1335 sess->cur_cq_vector = find_next_bit_ring(sess); in rtrs_srv_get_next_cq_vector()
1337 return sess->cur_cq_vector; in rtrs_srv_get_next_cq_vector()
1442 struct rtrs_srv_sess *sess) in __add_path_to_srv() argument
1444 list_add_tail(&sess->s.entry, &srv->paths_list); in __add_path_to_srv()
1449 static void del_path_from_srv(struct rtrs_srv_sess *sess) in del_path_from_srv() argument
1451 struct rtrs_srv *srv = sess->srv; in del_path_from_srv()
1457 list_del(&sess->s.entry); in del_path_from_srv()
1490 struct rtrs_srv_sess *sess; in __is_path_w_addr_exists() local
1492 list_for_each_entry(sess, &srv->paths_list, s.entry) in __is_path_w_addr_exists()
1493 if (!sockaddr_cmp((struct sockaddr *)&sess->s.dst_addr, in __is_path_w_addr_exists()
1495 !sockaddr_cmp((struct sockaddr *)&sess->s.src_addr, in __is_path_w_addr_exists()
1502 static void free_sess(struct rtrs_srv_sess *sess) in free_sess() argument
1504 if (sess->kobj.state_in_sysfs) { in free_sess()
1505 kobject_del(&sess->kobj); in free_sess()
1506 kobject_put(&sess->kobj); in free_sess()
1508 kfree(sess->stats); in free_sess()
1509 kfree(sess); in free_sess()
1515 struct rtrs_srv_sess *sess; in rtrs_srv_close_work() local
1519 sess = container_of(work, typeof(*sess), close_work); in rtrs_srv_close_work()
1521 rtrs_srv_destroy_sess_files(sess); in rtrs_srv_close_work()
1522 rtrs_srv_stop_hb(sess); in rtrs_srv_close_work()
1524 for (i = 0; i < sess->s.con_num; i++) { in rtrs_srv_close_work()
1525 if (!sess->s.con[i]) in rtrs_srv_close_work()
1527 con = to_srv_con(sess->s.con[i]); in rtrs_srv_close_work()
1536 percpu_ref_kill(&sess->ids_inflight_ref); in rtrs_srv_close_work()
1539 wait_for_completion(&sess->complete_done); in rtrs_srv_close_work()
1542 rtrs_srv_sess_down(sess); in rtrs_srv_close_work()
1544 unmap_cont_bufs(sess); in rtrs_srv_close_work()
1545 rtrs_srv_free_ops_ids(sess); in rtrs_srv_close_work()
1547 for (i = 0; i < sess->s.con_num; i++) { in rtrs_srv_close_work()
1548 if (!sess->s.con[i]) in rtrs_srv_close_work()
1550 con = to_srv_con(sess->s.con[i]); in rtrs_srv_close_work()
1555 rtrs_ib_dev_put(sess->s.dev); in rtrs_srv_close_work()
1557 del_path_from_srv(sess); in rtrs_srv_close_work()
1558 put_srv(sess->srv); in rtrs_srv_close_work()
1559 sess->srv = NULL; in rtrs_srv_close_work()
1560 rtrs_srv_change_state(sess, RTRS_SRV_CLOSED); in rtrs_srv_close_work()
1562 kfree(sess->dma_addr); in rtrs_srv_close_work()
1563 kfree(sess->s.con); in rtrs_srv_close_work()
1564 free_sess(sess); in rtrs_srv_close_work()
1567 static int rtrs_rdma_do_accept(struct rtrs_srv_sess *sess, in rtrs_rdma_do_accept() argument
1570 struct rtrs_srv *srv = sess->srv; in rtrs_rdma_do_accept()
1621 struct rtrs_srv_sess *sess; in __find_sess() local
1623 list_for_each_entry(sess, &srv->paths_list, s.entry) { in __find_sess()
1624 if (uuid_equal(&sess->s.uuid, sess_uuid)) in __find_sess()
1625 return sess; in __find_sess()
1631 static int create_con(struct rtrs_srv_sess *sess, in create_con() argument
1635 struct rtrs_srv *srv = sess->srv; in create_con()
1636 struct rtrs_sess *s = &sess->s; in create_con()
1651 con->c.sess = &sess->s; in create_con()
1654 wr_limit = sess->s.dev->ib_dev->attrs.max_qp_wr; in create_con()
1687 cq_vector = rtrs_srv_get_next_cq_vector(sess); in create_con()
1690 err = rtrs_cq_qp_create(&sess->s, &con->c, 1, cq_vector, cq_num, in create_con()
1702 WARN_ON(sess->s.con[cid]); in create_con()
1703 sess->s.con[cid] = &con->c; in create_con()
1728 struct rtrs_srv_sess *sess; in __alloc_sess() local
1742 sess = kzalloc(sizeof(*sess), GFP_KERNEL); in __alloc_sess()
1743 if (!sess) in __alloc_sess()
1746 sess->stats = kzalloc(sizeof(*sess->stats), GFP_KERNEL); in __alloc_sess()
1747 if (!sess->stats) in __alloc_sess()
1750 sess->stats->sess = sess; in __alloc_sess()
1752 sess->dma_addr = kcalloc(srv->queue_depth, sizeof(*sess->dma_addr), in __alloc_sess()
1754 if (!sess->dma_addr) in __alloc_sess()
1757 sess->s.con = kcalloc(con_num, sizeof(*sess->s.con), GFP_KERNEL); in __alloc_sess()
1758 if (!sess->s.con) in __alloc_sess()
1761 sess->state = RTRS_SRV_CONNECTING; in __alloc_sess()
1762 sess->srv = srv; in __alloc_sess()
1763 sess->cur_cq_vector = -1; in __alloc_sess()
1764 sess->s.dst_addr = cm_id->route.addr.dst_addr; in __alloc_sess()
1765 sess->s.src_addr = cm_id->route.addr.src_addr; in __alloc_sess()
1768 path.src = &sess->s.src_addr; in __alloc_sess()
1769 path.dst = &sess->s.dst_addr; in __alloc_sess()
1771 strscpy(sess->s.sessname, str, sizeof(sess->s.sessname)); in __alloc_sess()
1773 sess->s.con_num = con_num; in __alloc_sess()
1774 sess->s.irq_con_num = con_num; in __alloc_sess()
1775 sess->s.recon_cnt = recon_cnt; in __alloc_sess()
1776 uuid_copy(&sess->s.uuid, uuid); in __alloc_sess()
1777 spin_lock_init(&sess->state_lock); in __alloc_sess()
1778 INIT_WORK(&sess->close_work, rtrs_srv_close_work); in __alloc_sess()
1779 rtrs_srv_init_hb(sess); in __alloc_sess()
1781 sess->s.dev = rtrs_ib_dev_find_or_add(cm_id->device, &dev_pd); in __alloc_sess()
1782 if (!sess->s.dev) { in __alloc_sess()
1786 err = map_cont_bufs(sess); in __alloc_sess()
1790 err = rtrs_srv_alloc_ops_ids(sess); in __alloc_sess()
1794 __add_path_to_srv(srv, sess); in __alloc_sess()
1796 return sess; in __alloc_sess()
1799 unmap_cont_bufs(sess); in __alloc_sess()
1801 rtrs_ib_dev_put(sess->s.dev); in __alloc_sess()
1803 kfree(sess->s.con); in __alloc_sess()
1805 kfree(sess->dma_addr); in __alloc_sess()
1807 kfree(sess->stats); in __alloc_sess()
1809 kfree(sess); in __alloc_sess()
1819 struct rtrs_srv_sess *sess; in rtrs_rdma_connect() local
1860 sess = __find_sess(srv, &msg->sess_uuid); in rtrs_rdma_connect()
1861 if (sess) { in rtrs_rdma_connect()
1862 struct rtrs_sess *s = &sess->s; in rtrs_rdma_connect()
1867 if (sess->state != RTRS_SRV_CONNECTING) { in rtrs_rdma_connect()
1869 rtrs_srv_state_str(sess->state)); in rtrs_rdma_connect()
1889 sess = __alloc_sess(srv, cm_id, con_num, recon_cnt, in rtrs_rdma_connect()
1891 if (IS_ERR(sess)) { in rtrs_rdma_connect()
1894 err = PTR_ERR(sess); in rtrs_rdma_connect()
1899 err = create_con(sess, cm_id, cid); in rtrs_rdma_connect()
1901 rtrs_err((&sess->s), "create_con(), error %d\n", err); in rtrs_rdma_connect()
1910 err = rtrs_rdma_do_accept(sess, cm_id); in rtrs_rdma_connect()
1912 rtrs_err((&sess->s), "rtrs_rdma_do_accept(), error %d\n", err); in rtrs_rdma_connect()
1932 close_sess(sess); in rtrs_rdma_connect()
1940 struct rtrs_srv_sess *sess = NULL; in rtrs_srv_rdma_cm_handler() local
1946 s = c->sess; in rtrs_srv_rdma_cm_handler()
1947 sess = to_srv_sess(s); in rtrs_srv_rdma_cm_handler()
1971 close_sess(sess); in rtrs_srv_rdma_cm_handler()
2181 struct rtrs_srv_sess *sess; in close_sessions() local
2184 list_for_each_entry(sess, &srv->paths_list, s.entry) in close_sessions()
2185 close_sess(sess); in close_sessions()