Patch "tcp: purge write queue upon RST" has been added to the 4.14-stable tree
Subsystems (3)
This is a note to let you know that I've just added the patch titled
tcp: purge write queue upon RST
to the 4.14-stable tree which can be found at:
http://www.kernel.org/git/?p=linux/kernel/git/stable/stable-queue.git;a=summary
The filename of the patch is:
tcp-purge-write-queue-upon-rst.patch
and it can be found in the queue-4.14 subdirectory.
If you, or anyone else, feels it should not be added to the stable tree, please let <[email protected]> know about it.
Quoted 1 line
From foo@baz Tue Mar 6 19:02:12 PST 2018
From: Soheil Hassas Yeganeh <[email protected]>
Date: Tue, 27 Feb 2018 18:32:18 -0500
Subject: tcp: purge write queue upon RST
From: Soheil Hassas Yeganeh <[email protected]>
[ Upstream commit a27fd7a8ed3856faaf5a2ff1c8c5f00c0667aaa0 ]
When the connection is reset, there is no point in keeping the packets on the write queue until the connection is closed.
RFC 793 (page 70) and RFC 793-bis (page 64) both suggest purging the write queue upon RST:
https://tools.ietf.org/html/draft-ietf-tcpm-rfc793bis-07
Moreover, this is essential for a correct MSG_ZEROCOPY implementation, because userspace cannot call close(fd) before receiving zerocopy signals even when the connection is reset.
--- net/ipv4/tcp_input.c | 1 + 1 file changed, 1 insertion(+)
net/ipv4/tcp_input.c +1 -0
@@ -4011,6 +4011,7 @@ void tcp_reset(struct sock *sk)/* This barrier is coupled with smp_rmb() in tcp_poll() */ smp_wmb (); +tcp_write_queue_purge (sk);tcp_done (sk);if (!sock_flag (sk,SOCK_DEAD ))
Patches currently in stable-queue which might be from [email protected] are
queue-4.14/tcp-purge-write-queue-upon-rst.patch queue-4.14/tcp_bbr-better-deal-with-suboptimal-gso.patch