X-Git-Url: http://pilppa.org/gitweb/?a=blobdiff_plain;f=net%2Fsctp%2Fassociola.c;h=ed0445fe85e7dac8dcc670986cf9745bde58c1de;hb=0bd2af46839ad6262d25714a6ec0365db9d6b98f;hp=27329ce9c311dc8aaf74c020911fb3d026aeab74;hpb=9b4f2e9576658c4e52d95dc8d309f51b2e2db096;p=linux-2.6-omap-h63xx.git diff --git a/net/sctp/associola.c b/net/sctp/associola.c index 27329ce9c31..ed0445fe85e 100644 --- a/net/sctp/associola.c +++ b/net/sctp/associola.c @@ -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.