diff options
Diffstat (limited to 'net/tipc/msg.c')
-rw-r--r-- | net/tipc/msg.c | 20 |
1 files changed, 9 insertions, 11 deletions
diff --git a/net/tipc/msg.c b/net/tipc/msg.c index b6cc58ec7346..562c926a51cc 100644 --- a/net/tipc/msg.c +++ b/net/tipc/msg.c | |||
@@ -520,17 +520,15 @@ exit: | |||
520 | /** | 520 | /** |
521 | * tipc_msg_lookup_dest(): try to find new destination for named message | 521 | * tipc_msg_lookup_dest(): try to find new destination for named message |
522 | * @skb: the buffer containing the message. | 522 | * @skb: the buffer containing the message. |
523 | * @dnode: return value: next-hop node, if destination found | 523 | * @err: error code to be used by caller if lookup fails |
524 | * @err: return value: error code to use, if message to be rejected | ||
525 | * Does not consume buffer | 524 | * Does not consume buffer |
526 | * Returns true if a destination is found, false otherwise | 525 | * Returns true if a destination is found, false otherwise |
527 | */ | 526 | */ |
528 | bool tipc_msg_lookup_dest(struct net *net, struct sk_buff *skb, | 527 | bool tipc_msg_lookup_dest(struct net *net, struct sk_buff *skb, int *err) |
529 | u32 *dnode, int *err) | ||
530 | { | 528 | { |
531 | struct tipc_msg *msg = buf_msg(skb); | 529 | struct tipc_msg *msg = buf_msg(skb); |
532 | u32 dport; | 530 | u32 dport, dnode; |
533 | u32 own_addr = tipc_own_addr(net); | 531 | u32 onode = tipc_own_addr(net); |
534 | 532 | ||
535 | if (!msg_isdata(msg)) | 533 | if (!msg_isdata(msg)) |
536 | return false; | 534 | return false; |
@@ -543,15 +541,15 @@ bool tipc_msg_lookup_dest(struct net *net, struct sk_buff *skb, | |||
543 | return false; | 541 | return false; |
544 | if (msg_reroute_cnt(msg)) | 542 | if (msg_reroute_cnt(msg)) |
545 | return false; | 543 | return false; |
546 | *dnode = addr_domain(net, msg_lookup_scope(msg)); | 544 | dnode = addr_domain(net, msg_lookup_scope(msg)); |
547 | dport = tipc_nametbl_translate(net, msg_nametype(msg), | 545 | dport = tipc_nametbl_translate(net, msg_nametype(msg), |
548 | msg_nameinst(msg), dnode); | 546 | msg_nameinst(msg), &dnode); |
549 | if (!dport) | 547 | if (!dport) |
550 | return false; | 548 | return false; |
551 | msg_incr_reroute_cnt(msg); | 549 | msg_incr_reroute_cnt(msg); |
552 | if (*dnode != own_addr) | 550 | if (dnode != onode) |
553 | msg_set_prevnode(msg, own_addr); | 551 | msg_set_prevnode(msg, onode); |
554 | msg_set_destnode(msg, *dnode); | 552 | msg_set_destnode(msg, dnode); |
555 | msg_set_destport(msg, dport); | 553 | msg_set_destport(msg, dport); |
556 | *err = TIPC_OK; | 554 | *err = TIPC_OK; |
557 | return true; | 555 | return true; |