diff options
author | David S. Miller <davem@sunset.davemloft.net> | 2007-03-06 11:21:05 -0800 |
---|---|---|
committer | David S. Miller <davem@sunset.davemloft.net> | 2007-03-06 11:21:05 -0800 |
commit | 64a146513f8f12ba204b7bf5cb7e9505594ead42 (patch) | |
tree | 849f875501ac6f08cf309c5b13cf21ed687974e2 /net/unix | |
parent | 187f5f84ef14a07dccf5f4503099708d60f6a724 (diff) | |
download | kernel_samsung_smdk4412-64a146513f8f12ba204b7bf5cb7e9505594ead42.zip kernel_samsung_smdk4412-64a146513f8f12ba204b7bf5cb7e9505594ead42.tar.gz kernel_samsung_smdk4412-64a146513f8f12ba204b7bf5cb7e9505594ead42.tar.bz2 |
[NET]: Revert incorrect accept queue backlog changes.
This reverts two changes:
8488df894d05d6fa41c2bd298c335f944bb0e401
248f06726e866942b3d8ca8f411f9067713b7ff8
A backlog value of N really does mean allow "N + 1" connections
to queue to a listening socket. This allows one to specify
"0" as the backlog and still get 1 connection.
Noticed by Gerrit Renker and Rick Jones.
Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'net/unix')
-rw-r--r-- | net/unix/af_unix.c | 6 |
1 files changed, 3 insertions, 3 deletions
diff --git a/net/unix/af_unix.c b/net/unix/af_unix.c index 51ca438..6069716 100644 --- a/net/unix/af_unix.c +++ b/net/unix/af_unix.c @@ -934,7 +934,7 @@ static long unix_wait_for_peer(struct sock *other, long timeo) sched = !sock_flag(other, SOCK_DEAD) && !(other->sk_shutdown & RCV_SHUTDOWN) && - (skb_queue_len(&other->sk_receive_queue) >= + (skb_queue_len(&other->sk_receive_queue) > other->sk_max_ack_backlog); unix_state_runlock(other); @@ -1008,7 +1008,7 @@ restart: if (other->sk_state != TCP_LISTEN) goto out_unlock; - if (skb_queue_len(&other->sk_receive_queue) >= + if (skb_queue_len(&other->sk_receive_queue) > other->sk_max_ack_backlog) { err = -EAGAIN; if (!timeo) @@ -1381,7 +1381,7 @@ restart: } if (unix_peer(other) != sk && - (skb_queue_len(&other->sk_receive_queue) >= + (skb_queue_len(&other->sk_receive_queue) > other->sk_max_ack_backlog)) { if (!timeo) { err = -EAGAIN; |