void rtrs_clt_update_wc_stats(struct rtrs_clt_con *con)
 {
-       struct rtrs_clt_sess *sess = to_clt_sess(con->c.sess);
+       struct rtrs_clt_sess *sess = to_clt_sess(con->c.path);
        struct rtrs_clt_stats *stats = sess->stats;
        struct rtrs_clt_stats_pcpu *s;
        int cpu;
 void rtrs_clt_update_all_stats(struct rtrs_clt_io_req *req, int dir)
 {
        struct rtrs_clt_con *con = req->con;
-       struct rtrs_clt_sess *sess = to_clt_sess(con->c.sess);
+       struct rtrs_clt_sess *sess = to_clt_sess(con->c.path);
        struct rtrs_clt_stats *stats = sess->stats;
        unsigned int len;
 
 
 
 static void rtrs_rdma_error_recovery(struct rtrs_clt_con *con)
 {
-       struct rtrs_clt_sess *sess = to_clt_sess(con->c.sess);
+       struct rtrs_clt_sess *sess = to_clt_sess(con->c.path);
 
        if (rtrs_clt_change_state_from_to(sess,
                                           RTRS_CLT_CONNECTED,
        struct rtrs_clt_con *con = to_clt_con(wc->qp->qp_context);
 
        if (wc->status != IB_WC_SUCCESS) {
-               rtrs_err(con->c.sess, "Failed IB_WR_REG_MR: %s\n",
+               rtrs_err(con->c.path, "Failed IB_WR_REG_MR: %s\n",
                          ib_wc_status_msg(wc->status));
                rtrs_rdma_error_recovery(con);
        }
        struct rtrs_clt_con *con = to_clt_con(wc->qp->qp_context);
 
        if (wc->status != IB_WC_SUCCESS) {
-               rtrs_err(con->c.sess, "Failed IB_WR_LOCAL_INV: %s\n",
+               rtrs_err(con->c.path, "Failed IB_WR_LOCAL_INV: %s\n",
                          ib_wc_status_msg(wc->status));
                rtrs_rdma_error_recovery(con);
        }
                return;
        if (WARN_ON(!req->con))
                return;
-       sess = to_clt_sess(con->c.sess);
+       sess = to_clt_sess(con->c.path);
 
        if (req->sg_cnt) {
                if (req->dir == DMA_FROM_DEVICE && req->need_inv) {
                        refcount_inc(&req->ref);
                        err = rtrs_inv_rkey(req);
                        if (err) {
-                               rtrs_err(con->c.sess, "Send INV WR key=%#x: %d\n",
+                               rtrs_err(con->c.path, "Send INV WR key=%#x: %d\n",
                                          req->mr->rkey, err);
                        } else if (can_wait) {
                                wait_for_completion(&req->inv_comp);
        req->con = NULL;
 
        if (errno) {
-               rtrs_err_rl(con->c.sess, "IO request failed: error=%d path=%s [%s:%u] notify=%d\n",
+               rtrs_err_rl(con->c.path, "IO request failed: error=%d path=%s [%s:%u] notify=%d\n",
                            errno, kobject_name(&sess->kobj), sess->hca_name,
                            sess->hca_port, notify);
        }
                                struct rtrs_rbuf *rbuf, u32 off,
                                u32 imm, struct ib_send_wr *wr)
 {
-       struct rtrs_clt_sess *sess = to_clt_sess(con->c.sess);
+       struct rtrs_clt_sess *sess = to_clt_sess(con->c.path);
        enum ib_send_flags flags;
        struct ib_sge sge;
 
        if (!req->sg_size) {
-               rtrs_wrn(con->c.sess,
+               rtrs_wrn(con->c.path,
                         "Doing RDMA Write failed, no data supplied\n");
                return -EINVAL;
        }
 {
        struct rtrs_iu *iu;
        int err;
-       struct rtrs_clt_sess *sess = to_clt_sess(con->c.sess);
+       struct rtrs_clt_sess *sess = to_clt_sess(con->c.path);
 
        WARN_ON((sess->flags & RTRS_MSG_NEW_RKEY_F) == 0);
        iu = container_of(wc->wr_cqe, struct rtrs_iu,
                          cqe);
        err = rtrs_iu_post_recv(&con->c, iu);
        if (err) {
-               rtrs_err(con->c.sess, "post iu failed %d\n", err);
+               rtrs_err(con->c.path, "post iu failed %d\n", err);
                rtrs_rdma_error_recovery(con);
        }
 }
 
 static void rtrs_clt_rkey_rsp_done(struct rtrs_clt_con *con, struct ib_wc *wc)
 {
-       struct rtrs_clt_sess *sess = to_clt_sess(con->c.sess);
+       struct rtrs_clt_sess *sess = to_clt_sess(con->c.path);
        struct rtrs_msg_rkey_rsp *msg;
        u32 imm_type, imm_payload;
        bool w_inval = false;
        iu = container_of(wc->wr_cqe, struct rtrs_iu, cqe);
 
        if (wc->byte_len < sizeof(*msg)) {
-               rtrs_err(con->c.sess, "rkey response is malformed: size %d\n",
+               rtrs_err(con->c.path, "rkey response is malformed: size %d\n",
                          wc->byte_len);
                goto out;
        }
 static void rtrs_clt_rdma_done(struct ib_cq *cq, struct ib_wc *wc)
 {
        struct rtrs_clt_con *con = to_clt_con(wc->qp->qp_context);
-       struct rtrs_clt_sess *sess = to_clt_sess(con->c.sess);
+       struct rtrs_clt_sess *sess = to_clt_sess(con->c.path);
        u32 imm_type, imm_payload;
        bool w_inval = false;
        int err;
                        if (sess->flags & RTRS_MSG_NEW_RKEY_F)
                                return  rtrs_clt_recv_done(con, wc);
                } else {
-                       rtrs_wrn(con->c.sess, "Unknown IMM type %u\n",
+                       rtrs_wrn(con->c.path, "Unknown IMM type %u\n",
                                  imm_type);
                }
                if (w_inval)
                else
                        err = rtrs_post_recv_empty(&con->c, &io_comp_cqe);
                if (err) {
-                       rtrs_err(con->c.sess, "rtrs_post_recv_empty(): %d\n",
+                       rtrs_err(con->c.path, "rtrs_post_recv_empty(): %d\n",
                                  err);
                        rtrs_rdma_error_recovery(con);
                }
 static int post_recv_io(struct rtrs_clt_con *con, size_t q_size)
 {
        int err, i;
-       struct rtrs_clt_sess *sess = to_clt_sess(con->c.sess);
+       struct rtrs_clt_sess *sess = to_clt_sess(con->c.path);
 
        for (i = 0; i < q_size; i++) {
                if (sess->flags & RTRS_MSG_NEW_RKEY_F) {
                                   u32 size, u32 imm, struct ib_send_wr *wr,
                                   struct ib_send_wr *tail)
 {
-       struct rtrs_clt_sess *sess = to_clt_sess(con->c.sess);
+       struct rtrs_clt_sess *sess = to_clt_sess(con->c.path);
        struct ib_sge *sge = req->sge;
        enum ib_send_flags flags;
        struct scatterlist *sg;
 static int rtrs_clt_write_req(struct rtrs_clt_io_req *req)
 {
        struct rtrs_clt_con *con = req->con;
-       struct rtrs_sess *s = con->c.sess;
+       struct rtrs_path *s = con->c.path;
        struct rtrs_clt_sess *sess = to_clt_sess(s);
        struct rtrs_msg_rdma_write *msg;
 
 static int rtrs_clt_read_req(struct rtrs_clt_io_req *req)
 {
        struct rtrs_clt_con *con = req->con;
-       struct rtrs_sess *s = con->c.sess;
+       struct rtrs_path *s = con->c.path;
        struct rtrs_clt_sess *sess = to_clt_sess(s);
        struct rtrs_msg_rdma_read *msg;
        struct rtrs_ib_dev *dev = sess->s.dev;
        /* Map first two connections to the first CPU */
        con->cpu  = (cid ? cid - 1 : 0) % nr_cpu_ids;
        con->c.cid = cid;
-       con->c.sess = &sess->s;
+       con->c.path = &sess->s;
        /* Align with srv, init as 1 */
        atomic_set(&con->c.wr_cnt, 1);
        mutex_init(&con->con_mutex);
 
 static void destroy_con(struct rtrs_clt_con *con)
 {
-       struct rtrs_clt_sess *sess = to_clt_sess(con->c.sess);
+       struct rtrs_clt_sess *sess = to_clt_sess(con->c.path);
 
        sess->s.con[con->c.cid] = NULL;
        mutex_destroy(&con->con_mutex);
 
 static int create_con_cq_qp(struct rtrs_clt_con *con)
 {
-       struct rtrs_clt_sess *sess = to_clt_sess(con->c.sess);
+       struct rtrs_clt_sess *sess = to_clt_sess(con->c.path);
        u32 max_send_wr, max_recv_wr, cq_num, max_send_sge, wr_limit;
        int err, cq_vector;
        struct rtrs_msg_rkey_rsp *rsp;
 
 static void destroy_con_cq_qp(struct rtrs_clt_con *con)
 {
-       struct rtrs_clt_sess *sess = to_clt_sess(con->c.sess);
+       struct rtrs_clt_sess *sess = to_clt_sess(con->c.path);
 
        /*
         * Be careful here: destroy_con_cq_qp() can be called even
 
 static int rtrs_rdma_addr_resolved(struct rtrs_clt_con *con)
 {
-       struct rtrs_sess *s = con->c.sess;
+       struct rtrs_path *s = con->c.path;
        int err;
 
        mutex_lock(&con->con_mutex);
 
 static int rtrs_rdma_route_resolved(struct rtrs_clt_con *con)
 {
-       struct rtrs_clt_sess *sess = to_clt_sess(con->c.sess);
+       struct rtrs_clt_sess *sess = to_clt_sess(con->c.path);
        struct rtrs_clt *clt = sess->clt;
        struct rtrs_msg_conn_req msg;
        struct rdma_conn_param param;
 static int rtrs_rdma_conn_established(struct rtrs_clt_con *con,
                                       struct rdma_cm_event *ev)
 {
-       struct rtrs_clt_sess *sess = to_clt_sess(con->c.sess);
+       struct rtrs_clt_sess *sess = to_clt_sess(con->c.path);
        struct rtrs_clt *clt = sess->clt;
        const struct rtrs_msg_conn_rsp *msg;
        u16 version, queue_depth;
 
 static inline void flag_success_on_conn(struct rtrs_clt_con *con)
 {
-       struct rtrs_clt_sess *sess = to_clt_sess(con->c.sess);
+       struct rtrs_clt_sess *sess = to_clt_sess(con->c.path);
 
        atomic_inc(&sess->connected_cnt);
        con->cm_err = 1;
 static int rtrs_rdma_conn_rejected(struct rtrs_clt_con *con,
                                    struct rdma_cm_event *ev)
 {
-       struct rtrs_sess *s = con->c.sess;
+       struct rtrs_path *s = con->c.path;
        const struct rtrs_msg_conn_rsp *msg;
        const char *rej_msg;
        int status, errno;
        if (con->cm_err == 1) {
                struct rtrs_clt_sess *sess;
 
-               sess = to_clt_sess(con->c.sess);
+               sess = to_clt_sess(con->c.path);
                if (atomic_dec_and_test(&sess->connected_cnt))
 
                        wake_up(&sess->state_wq);
                                     struct rdma_cm_event *ev)
 {
        struct rtrs_clt_con *con = cm_id->context;
-       struct rtrs_sess *s = con->c.sess;
+       struct rtrs_path *s = con->c.path;
        struct rtrs_clt_sess *sess = to_clt_sess(s);
        int cm_err = 0;
 
 
 static int create_cm(struct rtrs_clt_con *con)
 {
-       struct rtrs_sess *s = con->c.sess;
+       struct rtrs_path *s = con->c.path;
        struct rtrs_clt_sess *sess = to_clt_sess(s);
        struct rdma_cm_id *cm_id;
        int err;
 static void rtrs_clt_info_req_done(struct ib_cq *cq, struct ib_wc *wc)
 {
        struct rtrs_clt_con *con = to_clt_con(wc->qp->qp_context);
-       struct rtrs_clt_sess *sess = to_clt_sess(con->c.sess);
+       struct rtrs_clt_sess *sess = to_clt_sess(con->c.path);
        struct rtrs_iu *iu;
 
        iu = container_of(wc->wr_cqe, struct rtrs_iu, cqe);
 static void rtrs_clt_info_rsp_done(struct ib_cq *cq, struct ib_wc *wc)
 {
        struct rtrs_clt_con *con = to_clt_con(wc->qp->qp_context);
-       struct rtrs_clt_sess *sess = to_clt_sess(con->c.sess);
+       struct rtrs_clt_sess *sess = to_clt_sess(con->c.path);
        struct rtrs_msg_info_rsp *msg;
        enum rtrs_clt_state state;
        struct rtrs_iu *iu;
 
 };
 
 struct rtrs_clt_sess {
-       struct rtrs_sess        s;
+       struct rtrs_path        s;
        struct rtrs_clt *clt;
        wait_queue_head_t       state_wq;
        enum rtrs_clt_state     state;
        return container_of(c, struct rtrs_clt_con, c);
 }
 
-static inline struct rtrs_clt_sess *to_clt_sess(struct rtrs_sess *s)
+static inline struct rtrs_clt_sess *to_clt_sess(struct rtrs_path *s)
 {
        return container_of(s, struct rtrs_clt_sess, s);
 }
 
 };
 
 struct rtrs_con {
-       struct rtrs_sess        *sess;
+       struct rtrs_path        *path;
        struct ib_qp            *qp;
        struct ib_cq            *cq;
        struct rdma_cm_id       *cm_id;
        atomic_t                sq_wr_avail;
 };
 
-struct rtrs_sess {
+struct rtrs_path {
        struct list_head        entry;
        struct sockaddr_storage dst_addr;
        struct sockaddr_storage src_addr;
 
 int rtrs_post_recv_empty(struct rtrs_con *con, struct ib_cqe *cqe);
 
-int rtrs_cq_qp_create(struct rtrs_sess *sess, struct rtrs_con *con,
+int rtrs_cq_qp_create(struct rtrs_path *path, struct rtrs_con *con,
                      u32 max_send_sge, int cq_vector, int nr_cqe,
                      u32 max_send_wr, u32 max_recv_wr,
                      enum ib_poll_context poll_ctx);
 void rtrs_cq_qp_destroy(struct rtrs_con *con);
 
-void rtrs_init_hb(struct rtrs_sess *sess, struct ib_cqe *cqe,
+void rtrs_init_hb(struct rtrs_path *path, struct ib_cqe *cqe,
                  unsigned int interval_ms, unsigned int missed_max,
                  void (*err_handler)(struct rtrs_con *con),
                  struct workqueue_struct *wq);
-void rtrs_start_hb(struct rtrs_sess *sess);
-void rtrs_stop_hb(struct rtrs_sess *sess);
-void rtrs_send_hb_ack(struct rtrs_sess *sess);
+void rtrs_start_hb(struct rtrs_path *path);
+void rtrs_stop_hb(struct rtrs_path *path);
+void rtrs_send_hb_ack(struct rtrs_path *path);
 
 void rtrs_rdma_dev_pd_init(enum ib_pd_flags pd_flags,
                           struct rtrs_rdma_dev_pd *pool);
 
                                          const char *buf, size_t count)
 {
        struct rtrs_srv_sess *sess;
-       struct rtrs_sess *s;
+       struct rtrs_path *s;
        char str[MAXHOSTNAMELEN];
 
        sess = container_of(kobj, struct rtrs_srv_sess, kobj);
 static int rtrs_srv_create_stats_files(struct rtrs_srv_sess *sess)
 {
        int err;
-       struct rtrs_sess *s = &sess->s;
+       struct rtrs_path *s = &sess->s;
 
        err = kobject_init_and_add(&sess->stats->kobj_stats, &ktype_stats,
                                   &sess->kobj, "stats");
 int rtrs_srv_create_sess_files(struct rtrs_srv_sess *sess)
 {
        struct rtrs_srv *srv = sess->srv;
-       struct rtrs_sess *s = &sess->s;
+       struct rtrs_path *s = &sess->s;
        char str[NAME_MAX];
        int err;
        struct rtrs_addr path = {
 
        return container_of(c, struct rtrs_srv_con, c);
 }
 
-static inline struct rtrs_srv_sess *to_srv_sess(struct rtrs_sess *s)
+static inline struct rtrs_srv_sess *to_srv_sess(struct rtrs_path *s)
 {
        return container_of(s, struct rtrs_srv_sess, s);
 }
 static void rtrs_srv_reg_mr_done(struct ib_cq *cq, struct ib_wc *wc)
 {
        struct rtrs_srv_con *con = to_srv_con(wc->qp->qp_context);
-       struct rtrs_sess *s = con->c.sess;
+       struct rtrs_path *s = con->c.path;
        struct rtrs_srv_sess *sess = to_srv_sess(s);
 
        if (wc->status != IB_WC_SUCCESS) {
 
 static int rdma_write_sg(struct rtrs_srv_op *id)
 {
-       struct rtrs_sess *s = id->con->c.sess;
+       struct rtrs_path *s = id->con->c.path;
        struct rtrs_srv_sess *sess = to_srv_sess(s);
        dma_addr_t dma_addr = sess->dma_addr[id->msg_id];
        struct rtrs_srv_mr *srv_mr;
 static int send_io_resp_imm(struct rtrs_srv_con *con, struct rtrs_srv_op *id,
                            int errno)
 {
-       struct rtrs_sess *s = con->c.sess;
+       struct rtrs_path *s = con->c.path;
        struct rtrs_srv_sess *sess = to_srv_sess(s);
        struct ib_send_wr inv_wr, *wr = NULL;
        struct ib_rdma_wr imm_wr;
 {
        struct rtrs_srv_sess *sess;
        struct rtrs_srv_con *con;
-       struct rtrs_sess *s;
+       struct rtrs_path *s;
        int err;
 
        if (WARN_ON(!id))
                return true;
 
        con = id->con;
-       s = con->c.sess;
+       s = con->c.path;
        sess = to_srv_sess(s);
 
        id->status = status;
 static int map_cont_bufs(struct rtrs_srv_sess *sess)
 {
        struct rtrs_srv *srv = sess->srv;
-       struct rtrs_sess *ss = &sess->s;
+       struct rtrs_path *ss = &sess->s;
        int i, mri, err, mrs_num;
        unsigned int chunk_bits;
        int chunks_per_mr = 1;
 
 static void rtrs_srv_hb_err_handler(struct rtrs_con *c)
 {
-       close_sess(to_srv_sess(c->sess));
+       close_sess(to_srv_sess(c->path));
 }
 
 static void rtrs_srv_init_hb(struct rtrs_srv_sess *sess)
 static void rtrs_srv_info_rsp_done(struct ib_cq *cq, struct ib_wc *wc)
 {
        struct rtrs_srv_con *con = to_srv_con(wc->qp->qp_context);
-       struct rtrs_sess *s = con->c.sess;
+       struct rtrs_path *s = con->c.path;
        struct rtrs_srv_sess *sess = to_srv_sess(s);
        struct rtrs_iu *iu;
 
 static int process_info_req(struct rtrs_srv_con *con,
                            struct rtrs_msg_info_req *msg)
 {
-       struct rtrs_sess *s = con->c.sess;
+       struct rtrs_path *s = con->c.path;
        struct rtrs_srv_sess *sess = to_srv_sess(s);
        struct ib_send_wr *reg_wr = NULL;
        struct rtrs_msg_info_rsp *rsp;
 static void rtrs_srv_info_req_done(struct ib_cq *cq, struct ib_wc *wc)
 {
        struct rtrs_srv_con *con = to_srv_con(wc->qp->qp_context);
-       struct rtrs_sess *s = con->c.sess;
+       struct rtrs_path *s = con->c.path;
        struct rtrs_srv_sess *sess = to_srv_sess(s);
        struct rtrs_msg_info_req *msg;
        struct rtrs_iu *iu;
 
 static int post_recv_info_req(struct rtrs_srv_con *con)
 {
-       struct rtrs_sess *s = con->c.sess;
+       struct rtrs_path *s = con->c.path;
        struct rtrs_srv_sess *sess = to_srv_sess(s);
        struct rtrs_iu *rx_iu;
        int err;
 static int post_recv_sess(struct rtrs_srv_sess *sess)
 {
        struct rtrs_srv *srv = sess->srv;
-       struct rtrs_sess *s = &sess->s;
+       struct rtrs_path *s = &sess->s;
        size_t q_size;
        int err, cid;
 
                         struct rtrs_msg_rdma_read *msg,
                         u32 buf_id, u32 off)
 {
-       struct rtrs_sess *s = con->c.sess;
+       struct rtrs_path *s = con->c.path;
        struct rtrs_srv_sess *sess = to_srv_sess(s);
        struct rtrs_srv *srv = sess->srv;
        struct rtrs_srv_ctx *ctx = srv->ctx;
                          struct rtrs_msg_rdma_write *req,
                          u32 buf_id, u32 off)
 {
-       struct rtrs_sess *s = con->c.sess;
+       struct rtrs_path *s = con->c.path;
        struct rtrs_srv_sess *sess = to_srv_sess(s);
        struct rtrs_srv *srv = sess->srv;
        struct rtrs_srv_ctx *ctx = srv->ctx;
 static void process_io_req(struct rtrs_srv_con *con, void *msg,
                           u32 id, u32 off)
 {
-       struct rtrs_sess *s = con->c.sess;
+       struct rtrs_path *s = con->c.path;
        struct rtrs_srv_sess *sess = to_srv_sess(s);
        struct rtrs_msg_rdma_hdr *hdr;
        unsigned int type;
        struct rtrs_srv_mr *mr =
                container_of(wc->wr_cqe, typeof(*mr), inv_cqe);
        struct rtrs_srv_con *con = to_srv_con(wc->qp->qp_context);
-       struct rtrs_sess *s = con->c.sess;
+       struct rtrs_path *s = con->c.path;
        struct rtrs_srv_sess *sess = to_srv_sess(s);
        struct rtrs_srv *srv = sess->srv;
        u32 msg_id, off;
 static void rtrs_srv_rdma_done(struct ib_cq *cq, struct ib_wc *wc)
 {
        struct rtrs_srv_con *con = to_srv_con(wc->qp->qp_context);
-       struct rtrs_sess *s = con->c.sess;
+       struct rtrs_path *s = con->c.path;
        struct rtrs_srv_sess *sess = to_srv_sess(s);
        struct rtrs_srv *srv = sess->srv;
        u32 imm_type, imm_payload;
                      unsigned int cid)
 {
        struct rtrs_srv *srv = sess->srv;
-       struct rtrs_sess *s = &sess->s;
+       struct rtrs_path *s = &sess->s;
        struct rtrs_srv_con *con;
 
        u32 cq_num, max_send_wr, max_recv_wr, wr_limit;
        spin_lock_init(&con->rsp_wr_wait_lock);
        INIT_LIST_HEAD(&con->rsp_wr_wait_list);
        con->c.cm_id = cm_id;
-       con->c.sess = &sess->s;
+       con->c.path = &sess->s;
        con->c.cid = cid;
        atomic_set(&con->c.wr_cnt, 1);
        wr_limit = sess->s.dev->ib_dev->attrs.max_qp_wr;
        mutex_lock(&srv->paths_mutex);
        sess = __find_sess(srv, &msg->sess_uuid);
        if (sess) {
-               struct rtrs_sess *s = &sess->s;
+               struct rtrs_path *s = &sess->s;
 
                /* Session already holds a reference */
                put_srv(srv);
                                     struct rdma_cm_event *ev)
 {
        struct rtrs_srv_sess *sess = NULL;
-       struct rtrs_sess *s = NULL;
+       struct rtrs_path *s = NULL;
 
        if (ev->event != RDMA_CM_EVENT_CONNECT_REQUEST) {
                struct rtrs_con *c = cm_id->context;
 
-               s = c->sess;
+               s = c->path;
                sess = to_srv_sess(s);
        }
 
 
 };
 
 struct rtrs_srv_sess {
-       struct rtrs_sess        s;
+       struct rtrs_path        s;
        struct rtrs_srv *srv;
        struct work_struct      close_work;
        enum rtrs_srv_state     state;
 
 
 int rtrs_iu_post_recv(struct rtrs_con *con, struct rtrs_iu *iu)
 {
-       struct rtrs_sess *sess = con->sess;
+       struct rtrs_path *path = con->path;
        struct ib_recv_wr wr;
        struct ib_sge list;
 
        list.addr   = iu->dma_addr;
        list.length = iu->size;
-       list.lkey   = sess->dev->ib_pd->local_dma_lkey;
+       list.lkey   = path->dev->ib_pd->local_dma_lkey;
 
        if (list.length == 0) {
-               rtrs_wrn(con->sess,
+               rtrs_wrn(con->path,
                          "Posting receive work request failed, sg list is empty\n");
                return -EINVAL;
        }
 int rtrs_iu_post_send(struct rtrs_con *con, struct rtrs_iu *iu, size_t size,
                       struct ib_send_wr *head)
 {
-       struct rtrs_sess *sess = con->sess;
+       struct rtrs_path *path = con->path;
        struct ib_send_wr wr;
        struct ib_sge list;
 
 
        list.addr   = iu->dma_addr;
        list.length = size;
-       list.lkey   = sess->dev->ib_pd->local_dma_lkey;
+       list.lkey   = path->dev->ib_pd->local_dma_lkey;
 
        wr = (struct ib_send_wr) {
                .wr_cqe     = &iu->cqe,
                                          struct ib_send_wr *head)
 {
        struct ib_rdma_wr wr;
-       struct rtrs_sess *sess = con->sess;
+       struct rtrs_path *path = con->path;
        enum ib_send_flags sflags;
 
        atomic_dec_if_positive(&con->sq_wr_avail);
-       sflags = (atomic_inc_return(&con->wr_cnt) % sess->signal_interval) ?
+       sflags = (atomic_inc_return(&con->wr_cnt) % path->signal_interval) ?
                0 : IB_SEND_SIGNALED;
 
        wr = (struct ib_rdma_wr) {
 
        switch (ev->event) {
        case IB_EVENT_COMM_EST:
-               rtrs_info(con->sess, "QP event %s (%d) received\n",
+               rtrs_info(con->path, "QP event %s (%d) received\n",
                           ib_event_msg(ev->event), ev->event);
                rdma_notify(con->cm_id, IB_EVENT_COMM_EST);
                break;
        default:
-               rtrs_info(con->sess, "Unhandled QP event %s (%d) received\n",
+               rtrs_info(con->path, "Unhandled QP event %s (%d) received\n",
                           ib_event_msg(ev->event), ev->event);
                break;
        }
 
 static bool is_pollqueue(struct rtrs_con *con)
 {
-       return con->cid >= con->sess->irq_con_num;
+       return con->cid >= con->path->irq_con_num;
 }
 
 static int create_cq(struct rtrs_con *con, int cq_vector, int nr_cqe,
                cq = ib_cq_pool_get(cm_id->device, nr_cqe, cq_vector, poll_ctx);
 
        if (IS_ERR(cq)) {
-               rtrs_err(con->sess, "Creating completion queue failed, errno: %ld\n",
+               rtrs_err(con->path, "Creating completion queue failed, errno: %ld\n",
                          PTR_ERR(cq));
                return PTR_ERR(cq);
        }
 
        ret = rdma_create_qp(cm_id, pd, &init_attr);
        if (ret) {
-               rtrs_err(con->sess, "Creating QP failed, err: %d\n", ret);
+               rtrs_err(con->path, "Creating QP failed, err: %d\n", ret);
                return ret;
        }
        con->qp = cm_id->qp;
        con->cq = NULL;
 }
 
-int rtrs_cq_qp_create(struct rtrs_sess *sess, struct rtrs_con *con,
+int rtrs_cq_qp_create(struct rtrs_path *path, struct rtrs_con *con,
                       u32 max_send_sge, int cq_vector, int nr_cqe,
                       u32 max_send_wr, u32 max_recv_wr,
                       enum ib_poll_context poll_ctx)
        if (err)
                return err;
 
-       err = create_qp(con, sess->dev->ib_pd, max_send_wr, max_recv_wr,
+       err = create_qp(con, path->dev->ib_pd, max_send_wr, max_recv_wr,
                        max_send_sge);
        if (err) {
                destroy_cq(con);
                return err;
        }
-       con->sess = sess;
+       con->path = path;
 
        return 0;
 }
 }
 EXPORT_SYMBOL_GPL(rtrs_cq_qp_destroy);
 
-static void schedule_hb(struct rtrs_sess *sess)
+static void schedule_hb(struct rtrs_path *path)
 {
-       queue_delayed_work(sess->hb_wq, &sess->hb_dwork,
-                          msecs_to_jiffies(sess->hb_interval_ms));
+       queue_delayed_work(path->hb_wq, &path->hb_dwork,
+                          msecs_to_jiffies(path->hb_interval_ms));
 }
 
-void rtrs_send_hb_ack(struct rtrs_sess *sess)
+void rtrs_send_hb_ack(struct rtrs_path *path)
 {
-       struct rtrs_con *usr_con = sess->con[0];
+       struct rtrs_con *usr_con = path->con[0];
        u32 imm;
        int err;
 
        imm = rtrs_to_imm(RTRS_HB_ACK_IMM, 0);
-       err = rtrs_post_rdma_write_imm_empty(usr_con, sess->hb_cqe, imm,
+       err = rtrs_post_rdma_write_imm_empty(usr_con, path->hb_cqe, imm,
                                             NULL);
        if (err) {
-               rtrs_err(sess, "send HB ACK failed, errno: %d\n", err);
-               sess->hb_err_handler(usr_con);
+               rtrs_err(path, "send HB ACK failed, errno: %d\n", err);
+               path->hb_err_handler(usr_con);
                return;
        }
 }
 static void hb_work(struct work_struct *work)
 {
        struct rtrs_con *usr_con;
-       struct rtrs_sess *sess;
+       struct rtrs_path *path;
        u32 imm;
        int err;
 
-       sess = container_of(to_delayed_work(work), typeof(*sess), hb_dwork);
-       usr_con = sess->con[0];
+       path = container_of(to_delayed_work(work), typeof(*path), hb_dwork);
+       usr_con = path->con[0];
 
-       if (sess->hb_missed_cnt > sess->hb_missed_max) {
-               rtrs_err(sess, "HB missed max reached.\n");
-               sess->hb_err_handler(usr_con);
+       if (path->hb_missed_cnt > path->hb_missed_max) {
+               rtrs_err(path, "HB missed max reached.\n");
+               path->hb_err_handler(usr_con);
                return;
        }
-       if (sess->hb_missed_cnt++) {
+       if (path->hb_missed_cnt++) {
                /* Reschedule work without sending hb */
-               schedule_hb(sess);
+               schedule_hb(path);
                return;
        }
 
-       sess->hb_last_sent = ktime_get();
+       path->hb_last_sent = ktime_get();
 
        imm = rtrs_to_imm(RTRS_HB_MSG_IMM, 0);
-       err = rtrs_post_rdma_write_imm_empty(usr_con, sess->hb_cqe, imm,
+       err = rtrs_post_rdma_write_imm_empty(usr_con, path->hb_cqe, imm,
                                             NULL);
        if (err) {
-               rtrs_err(sess, "HB send failed, errno: %d\n", err);
-               sess->hb_err_handler(usr_con);
+               rtrs_err(path, "HB send failed, errno: %d\n", err);
+               path->hb_err_handler(usr_con);
                return;
        }
 
-       schedule_hb(sess);
+       schedule_hb(path);
 }
 
-void rtrs_init_hb(struct rtrs_sess *sess, struct ib_cqe *cqe,
+void rtrs_init_hb(struct rtrs_path *path, struct ib_cqe *cqe,
                  unsigned int interval_ms, unsigned int missed_max,
                  void (*err_handler)(struct rtrs_con *con),
                  struct workqueue_struct *wq)
 {
-       sess->hb_cqe = cqe;
-       sess->hb_interval_ms = interval_ms;
-       sess->hb_err_handler = err_handler;
-       sess->hb_wq = wq;
-       sess->hb_missed_max = missed_max;
-       sess->hb_missed_cnt = 0;
-       INIT_DELAYED_WORK(&sess->hb_dwork, hb_work);
+       path->hb_cqe = cqe;
+       path->hb_interval_ms = interval_ms;
+       path->hb_err_handler = err_handler;
+       path->hb_wq = wq;
+       path->hb_missed_max = missed_max;
+       path->hb_missed_cnt = 0;
+       INIT_DELAYED_WORK(&path->hb_dwork, hb_work);
 }
 EXPORT_SYMBOL_GPL(rtrs_init_hb);
 
-void rtrs_start_hb(struct rtrs_sess *sess)
+void rtrs_start_hb(struct rtrs_path *path)
 {
-       schedule_hb(sess);
+       schedule_hb(path);
 }
 EXPORT_SYMBOL_GPL(rtrs_start_hb);
 
-void rtrs_stop_hb(struct rtrs_sess *sess)
+void rtrs_stop_hb(struct rtrs_path *path)
 {
-       cancel_delayed_work_sync(&sess->hb_dwork);
-       sess->hb_missed_cnt = 0;
+       cancel_delayed_work_sync(&path->hb_dwork);
+       path->hb_missed_cnt = 0;
 }
 EXPORT_SYMBOL_GPL(rtrs_stop_hb);