mirror of
				https://github.com/torvalds/linux.git
				synced 2025-11-03 18:20:25 +02:00 
			
		
		
		
	[NET]: Revert incorrect accept queue backlog changes.
This reverts two changes:8488df894d248f06726eA 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>
This commit is contained in:
		
							parent
							
								
									187f5f84ef
								
							
						
					
					
						commit
						64a146513f
					
				
					 2 changed files with 4 additions and 4 deletions
				
			
		| 
						 | 
				
			
			@ -426,7 +426,7 @@ static inline void sk_acceptq_added(struct sock *sk)
 | 
			
		|||
 | 
			
		||||
static inline int sk_acceptq_is_full(struct sock *sk)
 | 
			
		||||
{
 | 
			
		||||
	return sk->sk_ack_backlog >= sk->sk_max_ack_backlog;
 | 
			
		||||
	return sk->sk_ack_backlog > sk->sk_max_ack_backlog;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
/*
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -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 @@ static int unix_stream_connect(struct socket *sock, struct sockaddr *uaddr,
 | 
			
		|||
	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 @@ static int unix_dgram_sendmsg(struct kiocb *kiocb, struct socket *sock,
 | 
			
		|||
	}
 | 
			
		||||
 | 
			
		||||
	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;
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
		Loading…
	
		Reference in a new issue