[PATCH v2 net-next] inet: do not set backlog if listen fails

From: Yafang Shao
Date: Sun Oct 07 2018 - 09:37:38 EST


We don't need to set the backlog if listen fails.
The sk_max_ack_backlog will be set in the caller inet_listen() and
dccp_listen_start() if inet_csk_listen_start() return without error.
So just remove this line to avoid this unnecessary operation.

Regarding sk_ack_backlog, we have to set it before a TCP/DCCP socket is
ready to accept new flows to avoid race, because dccp and tcp have lockless
listeners

Signed-off-by: Yafang Shao <laoar.shao@xxxxxxxxx>
---
net/ipv4/inet_connection_sock.c | 1 -
1 file changed, 1 deletion(-)

diff --git a/net/ipv4/inet_connection_sock.c b/net/ipv4/inet_connection_sock.c
index dfd5009..cdd5c95 100644
--- a/net/ipv4/inet_connection_sock.c
+++ b/net/ipv4/inet_connection_sock.c
@@ -871,7 +871,6 @@ int inet_csk_listen_start(struct sock *sk, int backlog)

reqsk_queue_alloc(&icsk->icsk_accept_queue);

- sk->sk_max_ack_backlog = backlog;
sk->sk_ack_backlog = 0;
inet_csk_delack_init(sk);

--
1.8.3.1