patch-2.3.99-pre6 linux/include/net/tcp.h

Next file: linux/include/net/x25.h
Previous file: linux/include/net/sock.h
Back to the patch index
Back to the overall index

diff -u --recursive --new-file v2.3.99-pre5/linux/include/net/tcp.h linux/include/net/tcp.h
@@ -1383,8 +1383,13 @@
 	req->sk = child;
 	tcp_acceptq_added(sk);
 
-	req->dl_next = tp->accept_queue;
-	tp->accept_queue = req;
+	if (!tp->accept_queue_tail) {
+		tp->accept_queue = req;
+	} else {
+		tp->accept_queue_tail->dl_next = req;
+	}
+	tp->accept_queue_tail = req;
+	req->dl_next = NULL;
 }
 
 struct tcp_listen_opt
@@ -1486,10 +1491,8 @@
 		return;
 	};
 
-	spin_lock_bh(&sk->timer_lock);
-	if (timer->prev != NULL && del_timer(timer))
+	if (timer_pending(timer) && del_timer(timer))
 		__sock_put(sk);
-	spin_unlock_bh(&sk->timer_lock);
 }
 
 /* This function does not return reliable answer. Use it only as advice.

FUNET's LINUX-ADM group, linux-adm@nic.funet.fi
TCL-scripts by Sam Shen (who was at: slshen@lbl.gov)