patch-2.1.3 linux/net/ipv4/tcp.c

Next file: linux/net/ipv4/tcp_input.c
Previous file: linux/net/ipv4/rarp.c
Back to the patch index
Back to the overall index

diff -u --recursive --new-file v2.1.2/linux/net/ipv4/tcp.c linux/net/ipv4/tcp.c
@@ -873,6 +873,8 @@
 		sk->socket->flags &= ~SO_NOSPACE;
 		add_wait_queue(sk->sleep, &wait);
 		for (;;) {
+			if (current->signal & ~current->blocked)
+				break;
 			current->state = TASK_INTERRUPTIBLE;
 			if (tcp_memory_free(sk))
 				break;
@@ -930,6 +932,7 @@
 	skb->tail += copy;
 	skb->len += copy;
 	skb->csum = csum_partial(skb->tail - tcp_size, tcp_size, 0);
+	sk->write_seq += copy;
 	if (!sk->packets_out)
 		send = tcp_send_skb;
 	send(sk, skb);
@@ -1064,7 +1067,6 @@
 					from += retval;
 					copied += retval;
 					len -= retval;
-					sk->write_seq += retval;
 					continue;
 				}
 				tcp_send_skb(sk, skb);

FUNET's LINUX-ADM group, linux-adm@nic.funet.fi
TCL-scripts by Sam Shen, slshen@lbl.gov