summaryrefslogtreecommitdiffstats
path: root/net/tipc
diff options
context:
space:
mode:
authorAllan Stephens <allan.stephens@windriver.com>2008-04-15 00:06:12 -0700
committerDavid S. Miller <davem@davemloft.net>2008-04-15 00:06:12 -0700
commit990098068fe963f956c14f681bd88d90dcb14584 (patch)
tree3ac3fe3f2e9ab8733fe89f26f7121e62a55b0659 /net/tipc
parent2c8dd11636e3a5f14a7fb765331b7043f01fe937 (diff)
[TIPC]: Skip connection flow control in connectionless sockets
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>
Diffstat (limited to 'net/tipc')
-rw-r--r--net/tipc/socket.c3
1 files changed, 2 insertions, 1 deletions
diff --git a/net/tipc/socket.c b/net/tipc/socket.c
index ca6f52f392a..91aa2dc5177 100644
--- a/net/tipc/socket.c
+++ b/net/tipc/socket.c
@@ -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);
}