Lines Matching defs:path

173  * @clt_path: client path pointer
195 * @clt_path: client path to change the state of.
309 struct rtrs_clt_path *clt_path = to_clt_path(con->c.path);
334 rtrs_err(con->c.path, "Failed IB_WR_REG_MR: %s\n",
354 rtrs_err(con->c.path, "Failed IB_WR_LOCAL_INV: %s\n",
391 clt_path = to_clt_path(con->c.path);
412 /* This should be IO path, so always notify */
421 rtrs_err(con->c.path, "Send INV WR key=%#x: %d\n",
449 rtrs_err_rl(con->c.path, "IO request failed: error=%d path=%s [%s:%u] notify=%d\n",
463 struct rtrs_clt_path *clt_path = to_clt_path(con->c.path);
468 rtrs_wrn(con->c.path,
512 struct rtrs_clt_path *clt_path = to_clt_path(con->c.path);
519 rtrs_err(con->c.path, "post iu failed %d\n", err);
526 struct rtrs_clt_path *clt_path = to_clt_path(con->c.path);
539 rtrs_err(con->c.path, "rkey response is malformed: size %d\n",
606 struct rtrs_clt_path *clt_path = to_clt_path(con->c.path);
652 rtrs_wrn(con->c.path, "Unknown IMM type %u\n",
664 rtrs_err(con->c.path, "rtrs_post_recv_empty(): %d\n",
699 struct rtrs_clt_path *clt_path = to_clt_path(con->c.path);
752 * rtrs_clt_get_next_path_or_null - get clt path from the list or return NULL
756 * Next clt path returned in round-robin fashion, i.e. head will be skipped,
772 * get_next_path_rr() - Returns path in round-robin fashion.
773 * @it: the path pointer
783 struct rtrs_clt_path *path;
795 path = rcu_dereference(*ppcpu_path);
796 if (!path)
797 path = list_first_or_null_rcu(&clt->paths_list,
798 typeof(*path), s.entry);
800 path = rtrs_clt_get_next_path_or_null(&clt->paths_list, path);
802 rcu_assign_pointer(*ppcpu_path, path);
804 return path;
808 * get_next_path_min_inflight() - Returns path with minimal inflight count.
809 * @it: the path pointer
840 * add the path to the skip list, so that next time we can get
850 * get_next_path_min_latency() - Returns path with minimal latency.
851 * @it: the path pointer
853 * Return: a path with the lowest latency or NULL if all paths are tried
860 * This DOES skip an already-tried path.
861 * There is a skip-list to skip a path if the path has tried but failed.
862 * It will try the minimum latency path and then the second minimum latency
863 * path and so on. Finally it will return NULL if all paths are tried.
865 * path is NULL and trigger the IO error.
891 * add the path to the skip list, so that next time we can get
933 * @clt_path: client path
1019 struct rtrs_clt_path *clt_path = to_clt_path(con->c.path);
1079 struct rtrs_path *s = con->c.path;
1157 "Write request failed: error=%d path=%s [%s:%u]\n",
1173 struct rtrs_path *s = con->c.path;
1263 "Read request failed: error=%d path=%s [%s:%u]\n",
1278 * rtrs_clt_failover_req() - Try to find an active path for a failed request
1305 /* Success path */
1331 * be failovered to another path.
1524 const struct rtrs_addr *path,
1555 memcpy(&clt_path->s.dst_addr, path->dst,
1556 rdma_addr_size((struct sockaddr *)path->dst));
1563 if (path->src)
1564 memcpy(&clt_path->s.src_addr, path->src,
1565 rdma_addr_size((struct sockaddr *)path->src));
1623 con->c.path = &clt_path->s;
1635 struct rtrs_clt_path *clt_path = to_clt_path(con->c.path);
1644 struct rtrs_clt_path *clt_path = to_clt_path(con->c.path);
1733 struct rtrs_clt_path *clt_path = to_clt_path(con->c.path);
1768 struct rtrs_path *s = con->c.path;
1787 struct rtrs_clt_path *clt_path = to_clt_path(con->c.path);
1822 struct rtrs_clt_path *clt_path = to_clt_path(con->c.path);
1902 /* set for_new_clt, to allow future reconnect on any path */
1911 struct rtrs_clt_path *clt_path = to_clt_path(con->c.path);
1920 struct rtrs_path *s = con->c.path;
1963 clt_path = to_clt_path(con->c.path);
1975 struct rtrs_path *s = con->c.path;
2047 struct rtrs_path *s = con->c.path;
2219 /* Make sure everybody observes path removal. */
2225 * nobody can observe @sess in the list, we guarantee that IO path
2233 * path and only then decremented paths number.
2237 * o One path is removed:
2240 * path = get_next_path()
2241 * ^^^ list_del_rcu(path)
2242 * [!CONNECTED path] clt->paths_num--
2248 * path is observed as !CONNECTED, but do_each_path() loop
2262 * @pcpu paths can still point to the path which is going to be
2273 * entry from the list, thus IO code path cannot
2280 * We race with IO code path, which also changes pointer,
2369 * If we've never taken async path and got an error, say,
2381 struct rtrs_clt_path *clt_path = to_clt_path(con->c.path);
2465 struct rtrs_clt_path *clt_path = to_clt_path(con->c.path);
2581 /* If we've never taken async path because of malloc problems */
2589 * init_path() - establishes all path connections and does handshake
2590 * @clt_path: client path.
2598 struct rtrs_addr path = {
2603 rtrs_addr_to_str(&path, str, sizeof(str));
2609 "init_conns() failed: err=%d path=%s [%s:%u]\n", err,
2616 "rtrs_send_path_info() failed: err=%d path=%s [%s:%u]\n",
2644 /* Close a path completely if max attempts is reached */
2769 * rtrs_clt_open() - Open a path to an RTRS server
2771 * @pathname: name of the path to an RTRS server
2865 * rtrs_clt_close() - Close a path
2921 * Continue stopping path till state was changed to DEAD or
2927 * removing the path.
3030 /* Success path */
3042 /* If no path, return -1 for block layer not to try again */
3103 * the addition of the first path is like a new session for
3112 * It is totally safe to add path in CONNECTING state: coming
3114 * path before init, since init fires LINK_CONNECTED event.