Lines Matching refs:ctx

756 	struct rtrs_srv_ctx *ctx = srv->ctx;
762 ctx->ops.link_ev(srv, RTRS_SRV_LINK_EV_CONNECTED, NULL);
772 struct rtrs_srv_ctx *ctx = srv->ctx;
781 ctx->ops.link_ev(srv, RTRS_SRV_LINK_EV_DISCONNECTED, srv->priv);
986 struct rtrs_srv_ctx *ctx = srv->ctx;
1014 ret = ctx->ops.rdma_ev(srv, srv->priv, id, READ, data, data_len,
1044 struct rtrs_srv_ctx *ctx = srv->ctx;
1067 ret = ctx->ops.rdma_ev(srv, srv->priv, id, WRITE, data, data_len,
1348 static struct rtrs_srv *get_or_create_srv(struct rtrs_srv_ctx *ctx,
1355 mutex_lock(&ctx->srv_mutex);
1356 list_for_each_entry(srv, &ctx->srv_list, ctx_list) {
1359 mutex_unlock(&ctx->srv_mutex);
1363 mutex_unlock(&ctx->srv_mutex);
1381 srv->ctx = ctx;
1396 mutex_lock(&ctx->srv_mutex);
1397 list_add(&srv->ctx_list, &ctx->srv_list);
1398 mutex_unlock(&ctx->srv_mutex);
1415 struct rtrs_srv_ctx *ctx = srv->ctx;
1419 mutex_lock(&ctx->srv_mutex);
1421 mutex_unlock(&ctx->srv_mutex);
1790 struct rtrs_srv_ctx *ctx = cm_id->context;
1825 srv = get_or_create_srv(ctx, &msg->paths_uuid, msg->first_conn);
1956 static struct rdma_cm_id *rtrs_srv_cm_init(struct rtrs_srv_ctx *ctx,
1964 ctx, ps, IB_QPT_RC);
1992 static int rtrs_srv_rdma_init(struct rtrs_srv_ctx *ctx, u16 port)
2014 cm_ip = rtrs_srv_cm_init(ctx, (struct sockaddr *)&sin, RDMA_PS_TCP);
2018 cm_ib = rtrs_srv_cm_init(ctx, (struct sockaddr *)&sib, RDMA_PS_IB);
2024 ctx->cm_id_ip = cm_ip;
2025 ctx->cm_id_ib = cm_ib;
2037 struct rtrs_srv_ctx *ctx;
2039 ctx = kzalloc(sizeof(*ctx), GFP_KERNEL);
2040 if (!ctx)
2043 ctx->ops = *ops;
2044 mutex_init(&ctx->srv_mutex);
2045 INIT_LIST_HEAD(&ctx->srv_list);
2047 return ctx;
2050 static void free_srv_ctx(struct rtrs_srv_ctx *ctx)
2052 WARN_ON(!list_empty(&ctx->srv_list));
2053 mutex_destroy(&ctx->srv_mutex);
2054 kfree(ctx);
2059 struct rtrs_srv_ctx *ctx;
2070 ctx = ib_ctx.srv_ctx;
2071 ret = rtrs_srv_rdma_init(ctx, ib_ctx.port);
2095 struct rtrs_srv_ctx *ctx;
2107 ctx = ib_ctx.srv_ctx;
2108 rdma_destroy_id(ctx->cm_id_ip);
2109 rdma_destroy_id(ctx->cm_id_ib);
2132 struct rtrs_srv_ctx *ctx;
2135 ctx = alloc_srv_ctx(ops);
2136 if (!ctx)
2140 ib_ctx.srv_ctx = ctx;
2145 free_srv_ctx(ctx);
2149 return ctx;
2163 static void close_ctx(struct rtrs_srv_ctx *ctx)
2167 mutex_lock(&ctx->srv_mutex);
2168 list_for_each_entry(srv, &ctx->srv_list, ctx_list)
2170 mutex_unlock(&ctx->srv_mutex);
2176 * @ctx: pointer to server context
2180 void rtrs_srv_close(struct rtrs_srv_ctx *ctx)
2184 close_ctx(ctx);
2185 free_srv_ctx(ctx);