diff options
| author | Zhu Yi <[email protected]> | 2010-03-04 18:01:41 +0000 |
|---|---|---|
| committer | David S. Miller <[email protected]> | 2010-03-05 21:34:00 +0000 |
| commit | 6b03a53a5ab7ccf2d5d69f96cf1c739c4d2a8fb9 (patch) | |
| tree | e16e367dd5365c707ecc7373c593da4922d6c8d6 /net/ipv4/tcp_ipv4.c | |
| parent | net: add limit for socket backlog (diff) | |
| download | kernel-6b03a53a5ab7ccf2d5d69f96cf1c739c4d2a8fb9.tar.gz kernel-6b03a53a5ab7ccf2d5d69f96cf1c739c4d2a8fb9.zip | |
tcp: use limited socket backlog
Make tcp adapt to the limited socket backlog change.
Cc: "David S. Miller" <[email protected]>
Cc: Alexey Kuznetsov <[email protected]>
Cc: "Pekka Savola (ipv6)" <[email protected]>
Cc: Patrick McHardy <[email protected]>
Signed-off-by: Zhu Yi <[email protected]>
Acked-by: Eric Dumazet <[email protected]>
Signed-off-by: David S. Miller <[email protected]>
Diffstat (limited to 'net/ipv4/tcp_ipv4.c')
| -rw-r--r-- | net/ipv4/tcp_ipv4.c | 6 |
1 files changed, 4 insertions, 2 deletions
diff --git a/net/ipv4/tcp_ipv4.c b/net/ipv4/tcp_ipv4.c index c3588b4fd979..4baf1943b1bd 100644 --- a/net/ipv4/tcp_ipv4.c +++ b/net/ipv4/tcp_ipv4.c @@ -1682,8 +1682,10 @@ process: if (!tcp_prequeue(sk, skb)) ret = tcp_v4_do_rcv(sk, skb); } - } else - sk_add_backlog(sk, skb); + } else if (sk_add_backlog_limited(sk, skb)) { + bh_unlock_sock(sk); + goto discard_and_relse; + } bh_unlock_sock(sk); sock_put(sk); |
