Skip to contentSkip to conversation

TCP_DEFER_ACCEPT updates - defer timeout conflicts with max_thresh

PATCH RESEND Applied Patrick McManus 2 participants 3 messages Mar 20, 2008 – Mar 21, 2008

Subsystems (3)
lore
Share & tools
lore
#0 lore raw

PATCH RESEND 1/3 TCP_DEFER_ACCEPT updates - defer timeout conflicts with max_thresh

commit 077b5f8e36b93e5121f680c3bb327e7464020fd2

Author: Patrick McManus <[email protected]>
Date:   Sat Feb 23 12:23:47 2008 -0500

timeout associated with SO_DEFER_ACCEPT wasn't being honored if it was less than the timeout allowed by the maximum syn-recv queue size algorithm. Fix by using the SO_DEFER_ACCEPT value if the ack has arrived.

---

net/ipv4/inet_connection_sock.c +1 -2
index b189278..03cc323 100644
@@ -461,8 +461,7 @@ void inet_csk_reqsk_queue_prune(struct sock *parent,
 		reqp=&lopt->syn_table[i];
 		while ((req = *reqp) != NULL) {
 			if (time_after_eq(now, req->expires)) {
-				if ((req->retrans < thresh ||
-				     (inet_rsk(req)->acked && req->retrans < max_retries))
+				if ((req->retrans < (inet_rsk(req)->acked ? max_retries : thresh))
 				    && !req->rsk_ops->rtx_syn_ack(parent, req, NULL)) {
 					unsigned long timeo;
 
maintainer
#1 lore raw

You didn't need to resend these, they are just very deep in my backlog and I just returned from a 10 day trip in Japan.

maintainer Applied
#2 lore raw
In reply to Patrick McManus

From: Patrick McManus <[email protected]>
Date: Thu, 20 Mar 2008 18:55:38 -0400

Quoted 11 lines

commit 077b5f8e36b93e5121f680c3bb327e7464020fd2

Author: Patrick McManus <[email protected]>
Date:   Sat Feb 23 12:23:47 2008 -0500

timeout associated with SO_DEFER_ACCEPT wasn't being honored if it was less than the timeout allowed by the maximum syn-recv queue size algorithm. Fix by using the SO_DEFER_ACCEPT value if the ack has arrived.

Applied to net-2.6.26, thanks.