We can keep track of the lnet_remotenet object associated with the
"best" lnet_peer_net, and pass that lnet_remotenet directly to
lnet_find_route_locked().
Test-Parameters: trivial
Signed-off-by: Chris Horn <hornc@cray.com>
Change-Id: Ib9808ca885c698ba6c73c5243fbce8b3f499b790
Reviewed-on: https://review.whamcloud.com/36536
Tested-by: jenkins <devops@whamcloud.com>
Tested-by: Maloo <maloo@whamcloud.com>
Reviewed-by: Alexandr Boyko <c17825@cray.com>
Reviewed-by: Alexey Lyashkov <c17817@cray.com>
Reviewed-by: Amir Shehata <ashehata@whamcloud.com>
Reviewed-by: Oleg Drokin <green@whamcloud.com>
}
static struct lnet_route *
}
static struct lnet_route *
-lnet_find_route_locked(struct lnet_net *net, __u32 remote_net,
+lnet_find_route_locked(struct lnet_remotenet *rnet,
struct lnet_route **prev_route,
struct lnet_peer_ni **gwni)
{
struct lnet_peer_ni *best_gw_ni = NULL;
struct lnet_route *best_route;
struct lnet_route *last_route;
struct lnet_route **prev_route,
struct lnet_peer_ni **gwni)
{
struct lnet_peer_ni *best_gw_ni = NULL;
struct lnet_route *best_route;
struct lnet_route *last_route;
- struct lnet_remotenet *rnet;
struct lnet_peer *lp_best;
struct lnet_route *route;
struct lnet_peer *lp;
int rc;
struct lnet_peer *lp_best;
struct lnet_route *route;
struct lnet_peer *lp;
int rc;
- rnet = lnet_find_rnet_locked(remote_net);
- if (rnet == NULL)
- return NULL;
-
lp_best = NULL;
best_route = last_route = NULL;
list_for_each_entry(route, &rnet->lrn_routes, lr_list) {
lp_best = NULL;
best_route = last_route = NULL;
list_for_each_entry(route, &rnet->lrn_routes, lr_list) {
struct lnet_peer *lp;
struct lnet_peer_net *lpn;
struct lnet_peer_net *best_lpn = NULL;
struct lnet_peer *lp;
struct lnet_peer_net *lpn;
struct lnet_peer_net *best_lpn = NULL;
- struct lnet_remotenet *rnet;
+ struct lnet_remotenet *rnet, *best_rnet = NULL;
struct lnet_route *best_route = NULL;
struct lnet_route *last_route = NULL;
struct lnet_peer_ni *lpni = NULL;
struct lnet_route *best_route = NULL;
struct lnet_route *last_route = NULL;
struct lnet_peer_ni *lpni = NULL;
if (best_lpn->lpn_seq <= lpn->lpn_seq)
continue;
best_lpn = lpn;
if (best_lpn->lpn_seq <= lpn->lpn_seq)
continue;
best_lpn = lpn;
- best_route = lnet_find_route_locked(NULL, best_lpn->lpn_net_id,
- &last_route, &gwni);
+ best_route = lnet_find_route_locked(best_rnet, &last_route,
+ &gwni);
if (!best_route) {
CERROR("no route to %s from %s\n",
libcfs_nid2str(dst_nid),
if (!best_route) {
CERROR("no route to %s from %s\n",
libcfs_nid2str(dst_nid),