tipc: Minor optimization to rejection of connection-based messages
authorAllan Stephens <allan.stephens@windriver.com>
Wed, 2 Nov 2011 14:32:14 +0000 (10:32 -0400)
committerPaul Gortmaker <paul.gortmaker@windriver.com>
Mon, 6 Feb 2012 21:59:19 +0000 (16:59 -0500)
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>
net/tipc/port.c

index d91efc69e6f9b776868798b220e301f279e3eaf6..ba3268b8da422d15cfa7d9f124ee51fd90301c57 100644 (file)
@@ -400,15 +400,16 @@ int tipc_reject_msg(struct sk_buff *buf, u32 err)
 
        /* send self-abort message when rejecting on a connected port */
        if (msg_connected(msg)) {
-               struct sk_buff *abuf = NULL;
                struct tipc_port *p_ptr = tipc_port_lock(msg_destport(msg));
 
                if (p_ptr) {
+                       struct sk_buff *abuf = NULL;
+
                        if (p_ptr->connected)
                                abuf = port_build_self_abort_msg(p_ptr, err);
                        tipc_port_unlock(p_ptr);
+                       tipc_net_route_msg(abuf);
                }
-               tipc_net_route_msg(abuf);
        }
 
        /* send returned message & dispose of rejected message */