dccp: Empty the write queue when disconnecting
authorGerrit Renker <gerrit@erg.abdn.ac.uk>
Sat, 23 Aug 2008 11:28:27 +0000 (13:28 +0200)
committerGerrit Renker <gerrit@erg.abdn.ac.uk>
Wed, 27 Aug 2008 05:22:00 +0000 (07:22 +0200)
commitb569d5a134074d4e15ab8e26cf2dd9f02c29fadc
tree306ce50ce1583709aad187bd25a7899cac5a8391
parent5a056417e696fabab8642ec38783de0b496bde76
dccp: Empty the write queue when disconnecting

dccp_disconnect() can be called due to several reasons:

 1. when the connection setup failed (inet_stream_connect());
 2. when shutting down (inet_shutdown(), inet_csk_listen_stop());
 3. when aborting the connection (dccp_close() with 0 linger time).

In case (1) the write queue is empty. This patch empties the write queue,
if in case (2) or (3) it was not yet empty.

This avoids triggering the write-queue BUG_TRAP in sk_stream_kill_queues()
later on.

It also seems natural to do: when breaking an association, to delete all
packets that were originally intended for the soon-disconnected end (compare
with call to tcp_write_queue_purge in tcp_disconnect()).

Signed-off-by: Gerrit Renker <gerrit@erg.abdn.ac.uk>
net/dccp/proto.c