Lines Matching refs:ctx
719 struct rtrs_srv_ctx *ctx = srv->ctx;
725 ret = ctx->ops.link_ev(srv, RTRS_SRV_LINK_EV_CONNECTED, NULL);
738 struct rtrs_srv_ctx *ctx = srv->ctx;
747 ctx->ops.link_ev(srv, RTRS_SRV_LINK_EV_DISCONNECTED, srv->priv);
751 static bool exist_pathname(struct rtrs_srv_ctx *ctx,
758 mutex_lock(&ctx->srv_mutex);
759 list_for_each_entry(srv, &ctx->srv_list, ctx_list) {
779 mutex_unlock(&ctx->srv_mutex);
809 if (exist_pathname(srv_path->srv->ctx,
1008 struct rtrs_srv_ctx *ctx = srv->ctx;
1036 ret = ctx->ops.rdma_ev(srv->priv, id, data, data_len,
1066 struct rtrs_srv_ctx *ctx = srv->ctx;
1089 ret = ctx->ops.rdma_ev(srv->priv, id, data, data_len,
1373 static struct rtrs_srv_sess *get_or_create_srv(struct rtrs_srv_ctx *ctx,
1380 mutex_lock(&ctx->srv_mutex);
1381 list_for_each_entry(srv, &ctx->srv_list, ctx_list) {
1384 mutex_unlock(&ctx->srv_mutex);
1388 mutex_unlock(&ctx->srv_mutex);
1408 srv->ctx = ctx;
1424 mutex_lock(&ctx->srv_mutex);
1425 list_add(&srv->ctx_list, &ctx->srv_list);
1426 mutex_unlock(&ctx->srv_mutex);
1443 struct rtrs_srv_ctx *ctx = srv->ctx;
1447 mutex_lock(&ctx->srv_mutex);
1449 mutex_unlock(&ctx->srv_mutex);
1835 struct rtrs_srv_ctx *ctx = cm_id->context;
1870 srv = get_or_create_srv(ctx, &msg->paths_uuid, msg->first_conn);
1998 static struct rdma_cm_id *rtrs_srv_cm_init(struct rtrs_srv_ctx *ctx,
2006 ctx, ps, IB_QPT_RC);
2034 static int rtrs_srv_rdma_init(struct rtrs_srv_ctx *ctx, u16 port)
2056 cm_ip = rtrs_srv_cm_init(ctx, (struct sockaddr *)&sin, RDMA_PS_TCP);
2060 cm_ib = rtrs_srv_cm_init(ctx, (struct sockaddr *)&sib, RDMA_PS_IB);
2066 ctx->cm_id_ip = cm_ip;
2067 ctx->cm_id_ib = cm_ib;
2079 struct rtrs_srv_ctx *ctx;
2081 ctx = kzalloc(sizeof(*ctx), GFP_KERNEL);
2082 if (!ctx)
2085 ctx->ops = *ops;
2086 mutex_init(&ctx->srv_mutex);
2087 INIT_LIST_HEAD(&ctx->srv_list);
2089 return ctx;
2092 static void free_srv_ctx(struct rtrs_srv_ctx *ctx)
2094 WARN_ON(!list_empty(&ctx->srv_list));
2095 mutex_destroy(&ctx->srv_mutex);
2096 kfree(ctx);
2101 struct rtrs_srv_ctx *ctx;
2112 ctx = ib_ctx.srv_ctx;
2113 ret = rtrs_srv_rdma_init(ctx, ib_ctx.port);
2137 struct rtrs_srv_ctx *ctx;
2149 ctx = ib_ctx.srv_ctx;
2150 rdma_destroy_id(ctx->cm_id_ip);
2151 rdma_destroy_id(ctx->cm_id_ib);
2174 struct rtrs_srv_ctx *ctx;
2177 ctx = alloc_srv_ctx(ops);
2178 if (!ctx)
2182 ib_ctx.srv_ctx = ctx;
2187 free_srv_ctx(ctx);
2191 return ctx;
2205 static void close_ctx(struct rtrs_srv_ctx *ctx)
2209 mutex_lock(&ctx->srv_mutex);
2210 list_for_each_entry(srv, &ctx->srv_list, ctx_list)
2212 mutex_unlock(&ctx->srv_mutex);
2218 * @ctx: pointer to server context
2222 void rtrs_srv_close(struct rtrs_srv_ctx *ctx)
2226 close_ctx(ctx);
2227 free_srv_ctx(ctx);