Whamcloud - gitweb
git://git.whamcloud.com
/
fs
/
lustre-release.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
| inline |
side by side
LU-6851 lnet: Ignore hops if not explicitly set
[fs/lustre-release.git]
/
lnet
/
lnet
/
lib-move.c
diff --git
a/lnet/lnet/lib-move.c
b/lnet/lnet/lib-move.c
index
7f5c0e8
..
ee2ab6f
100644
(file)
--- a/
lnet/lnet/lib-move.c
+++ b/
lnet/lnet/lib-move.c
@@
-1142,6
+1142,8
@@
lnet_compare_routes(lnet_route_t *r1, lnet_route_t *r2)
{
lnet_peer_t *p1 = r1->lr_gateway;
lnet_peer_t *p2 = r2->lr_gateway;
+ int r1_hops = (r1->lr_hops == LNET_UNDEFINED_HOPS) ? 1 : r1->lr_hops;
+ int r2_hops = (r2->lr_hops == LNET_UNDEFINED_HOPS) ? 1 : r2->lr_hops;
if (r1->lr_priority < r2->lr_priority)
return 1;
@@
-1149,10
+1151,10
@@
lnet_compare_routes(lnet_route_t *r1, lnet_route_t *r2)
if (r1->lr_priority > r2->lr_priority)
return -1;
- if (r1
->lr_hops < r2->lr
_hops)
+ if (r1
_hops < r2
_hops)
return 1;
- if (r1
->lr_hops > r2->lr
_hops)
+ if (r1
_hops > r2
_hops)
return -1;
if (p1->lp_txqnob < p2->lp_txqnob)
@@
-2511,22
+2513,29
@@
LNetDist(lnet_nid_t dstnid, lnet_nid_t *srcnidp, __u32 *orderp)
if (rnet->lrn_net == dstnet) {
lnet_route_t *route;
lnet_route_t *shortest = NULL;
+ __u32 shortest_hops = LNET_UNDEFINED_HOPS;
+ __u32 route_hops;
LASSERT(!list_empty(&rnet->lrn_routes));
list_for_each_entry(route, &rnet->lrn_routes,
lr_list) {
+ route_hops = route->lr_hops;
+ if (route_hops == LNET_UNDEFINED_HOPS)
+ route_hops = 1;
if (shortest == NULL ||
- route
->lr_hops < shortest->lr_hops)
+ route
_hops < shortest_hops) {
shortest = route;
+ shortest_hops = route_hops;
+ }
}
-
LASSERT
(shortest != NULL);
-
hops = shortest->lr
_hops;
-
if (srcnidp != NULL)
-
*srcnidp = shortest->lr_gateway->lp_ni->ni_nid;
-
if (orderp != NULL)
-
*orderp = order;
+
LASSERT
(shortest != NULL);
+
hops = shortest
_hops;
+ if (srcnidp != NULL)
+ *srcnidp = shortest->lr_gateway->lp_ni->ni_nid;
+ if (orderp != NULL)
+ *orderp = order;
lnet_net_unlock(cpt);
return hops + 1;
}