]> git.proxmox.com Git - mirror_ubuntu-eoan-kernel.git/commit
sctp: do not abandon the other frags in unsent outq if one msg has outstanding frags
authorXin Long <lucien.xin@gmail.com>
Sat, 25 Nov 2017 13:18:36 +0000 (21:18 +0800)
committerDavid S. Miller <davem@davemloft.net>
Fri, 1 Dec 2017 20:06:24 +0000 (15:06 -0500)
commit779edd7348878a7376c0e3d0f96485c30b5f1b7d
tree9b1c645495f76394384e82ea30edb6ed29a55937
parente5f612969c6f965e3bd1158598e0a3b1c4f389b9
sctp: do not abandon the other frags in unsent outq if one msg has outstanding frags

Now for the abandoned chunks in unsent outq, it would just free the chunks.
Because no tsn is assigned to them yet, there's no need to send fwd tsn to
peer, unlike for the abandoned chunks in sent outq.

The problem is when parts of the msg have been sent and the other frags
are still in unsent outq, if they are abandoned/dropped, the peer would
never get this msg reassembled.

So these frags in unsent outq can't be dropped if this msg already has
outstanding frags.

This patch does the check in sctp_chunk_abandoned and
sctp_prsctp_prune_unsent.

Signed-off-by: Xin Long <lucien.xin@gmail.com>
Acked-by: Marcelo Ricardo Leitner <marcelo.leitner@gmail.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
net/sctp/chunk.c
net/sctp/outqueue.c