diff options
author | David S. Miller <davem@sunset.davemloft.net> | 2007-03-02 21:49:23 +0100 |
---|---|---|
committer | David S. Miller <davem@sunset.davemloft.net> | 2007-03-03 05:37:34 +0100 |
commit | 248f06726e866942b3d8ca8f411f9067713b7ff8 (patch) | |
tree | 5e6a2f4ec75bb05e2d9eb6afc3c88f2775cf4133 /net/unix | |
parent | [NET]: Fix bugs in "Whether sock accept queue is full" checking (diff) | |
download | linux-248f06726e866942b3d8ca8f411f9067713b7ff8.tar.xz linux-248f06726e866942b3d8ca8f411f9067713b7ff8.zip |
[AF_UNIX]: Test against sk_max_ack_backlog properly.
This brings things inline with the sk_acceptq_is_full() bug
fix. The limit test should be x >= sk_max_ack_backlog.
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 606971645b33..51ca4383c388 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; |