]> err.no Git - linux-2.6/commitdiff
[TIPC]: Skip connection flow control in connectionless sockets
authorAllan Stephens <allan.stephens@windriver.com>
Tue, 15 Apr 2008 07:06:12 +0000 (00:06 -0700)
committerDavid S. Miller <davem@davemloft.net>
Tue, 15 Apr 2008 07:06:12 +0000 (00:06 -0700)
This patch optimizes the receive path for SOCK_DGRAM and SOCK_RDM
messages by skipping over code that handles connection-based flow
control.

Signed-off-by: Allan Stephens <allan.stephens@windriver.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
net/tipc/socket.c

index ca6f52f392a9d32b24eed723521b45949db521bb..91aa2dc51771988c891c92a5859c68d495abb9ff 100644 (file)
@@ -919,7 +919,8 @@ restart:
        /* Consume received message (optional) */
 
        if (likely(!(flags & MSG_PEEK))) {
-               if (unlikely(++tsock->p->conn_unacked >= TIPC_FLOW_CONTROL_WIN))
+               if ((sock->state != SS_READY) &&
+                   (++tsock->p->conn_unacked >= TIPC_FLOW_CONTROL_WIN))
                        tipc_acknowledge(tsock->p->ref, tsock->p->conn_unacked);
                advance_queue(tsock);
        }