From: Chris Horn Date: Thu, 12 Aug 2021 21:16:05 +0000 (-0500) Subject: LU-14941 lnet: Fix source specified to routed destination X-Git-Tag: 2.14.56~43 X-Git-Url: https://git.whamcloud.com/?p=fs%2Flustre-release.git;a=commitdiff_plain;h=98da4ace43a6c4c59e7981bf0fb649005237d12f LU-14941 lnet: Fix source specified to routed destination If a source NI is specified for a send then we should not modify the destination NID that was passed to lnet_send(). HPE-bug-id: LUS-10301 Signed-off-by: Chris Horn Change-Id: Ie47558d5bce97a0dca30ff7d072dcd39eb903324 Reviewed-on: https://review.whamcloud.com/44730 Tested-by: jenkins Tested-by: Maloo Reviewed-by: Serguei Smirnov Reviewed-by: James Simmons Reviewed-by: Oleg Drokin --- diff --git a/lnet/lnet/lib-move.c b/lnet/lnet/lib-move.c index 579cfbd..01e5918 100644 --- a/lnet/lnet/lib-move.c +++ b/lnet/lnet/lib-move.c @@ -2189,13 +2189,19 @@ lnet_handle_find_routed_path(struct lnet_send_data *sd, } if (!route_found) { - if (sd->sd_msg->msg_routing) { + if (sd->sd_msg->msg_routing || src_nid != LNET_NID_ANY) { /* If I'm routing this message then I need to find the * next hop based on the destination NID + * + * We also find next hop based on the destination NID + * if the source NI was specified */ best_rnet = lnet_find_rnet_locked(LNET_NIDNET(sd->sd_dst_nid)); if (!best_rnet) { - CERROR("Unable to route message to %s - Route table may be misconfigured\n", + CERROR("Unable to send message from %s to %s - Route table may be misconfigured\n", + src_nid != LNET_NID_ANY ? + libcfs_nid2str(src_nid) : + "any local NI", libcfs_nid2str(sd->sd_dst_nid)); return -EHOSTUNREACH; }