mirror of
https://github.com/Fishwaldo/Star64_linux.git
synced 2025-07-23 23:32:14 +00:00
[SCTP]: Remove temporary associations from backlog and hash.
Every time SCTP creates a temporary association, the stack hashes it, puts it on a list of endpoint associations and increments the backlog. However, the lifetime of a temporary association is the processing time of a current packet and it's destroyed after that. In fact, we don't really want anyone else finding this association. There is no reason to do this extra work. Signed-off-by: Vlad Yasevich <vladislav.yasevich@hp.com> Signed-off-by: Sridhar Samudrala <sri@us.ibm.com> Signed-off-by: David S. Miller <davem@davemloft.net>
This commit is contained in:
parent
4f4443088b
commit
de76e695a5
3 changed files with 24 additions and 4 deletions
|
@ -346,11 +346,18 @@ void sctp_association_free(struct sctp_association *asoc)
|
|||
struct list_head *pos, *temp;
|
||||
int i;
|
||||
|
||||
list_del(&asoc->asocs);
|
||||
/* Only real associations count against the endpoint, so
|
||||
* don't bother for if this is a temporary association.
|
||||
*/
|
||||
if (!asoc->temp) {
|
||||
list_del(&asoc->asocs);
|
||||
|
||||
/* Decrement the backlog value for a TCP-style listening socket. */
|
||||
if (sctp_style(sk, TCP) && sctp_sstate(sk, LISTENING))
|
||||
sk->sk_ack_backlog--;
|
||||
/* Decrement the backlog value for a TCP-style listening
|
||||
* socket.
|
||||
*/
|
||||
if (sctp_style(sk, TCP) && sctp_sstate(sk, LISTENING))
|
||||
sk->sk_ack_backlog--;
|
||||
}
|
||||
|
||||
/* Mark as dead, so other users can know this structure is
|
||||
* going away.
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue