tipc: Minor optimization to rejection of connection-based messages
Modifies message rejection logic so that TIPC doesn't attempt to send a FIN message to the rejecting port if it is known in advance that there is no such message because the rejecting port doesn't exist. Signed-off-by: Allan Stephens <allan.stephens@windriver.com> Signed-off-by: Paul Gortmaker <paul.gortmaker@windriver.com>
This commit is contained in:
committed by
Paul Gortmaker
parent
3175bd9add
commit
dff10e9e63
@@ -400,15 +400,16 @@ int tipc_reject_msg(struct sk_buff *buf, u32 err)
|
|||||||
|
|
||||||
/* send self-abort message when rejecting on a connected port */
|
/* send self-abort message when rejecting on a connected port */
|
||||||
if (msg_connected(msg)) {
|
if (msg_connected(msg)) {
|
||||||
struct sk_buff *abuf = NULL;
|
|
||||||
struct tipc_port *p_ptr = tipc_port_lock(msg_destport(msg));
|
struct tipc_port *p_ptr = tipc_port_lock(msg_destport(msg));
|
||||||
|
|
||||||
if (p_ptr) {
|
if (p_ptr) {
|
||||||
|
struct sk_buff *abuf = NULL;
|
||||||
|
|
||||||
if (p_ptr->connected)
|
if (p_ptr->connected)
|
||||||
abuf = port_build_self_abort_msg(p_ptr, err);
|
abuf = port_build_self_abort_msg(p_ptr, err);
|
||||||
tipc_port_unlock(p_ptr);
|
tipc_port_unlock(p_ptr);
|
||||||
|
tipc_net_route_msg(abuf);
|
||||||
}
|
}
|
||||||
tipc_net_route_msg(abuf);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/* send returned message & dispose of rejected message */
|
/* send returned message & dispose of rejected message */
|
||||||
|
Reference in New Issue
Block a user