aboutsummaryrefslogtreecommitdiffstats
path: root/net/sctp/input.c
diff options
context:
space:
mode:
authorVlad Yasevich <vladislav.yasevich@hp.com>2006-10-30 21:55:11 -0500
committerDavid S. Miller <davem@davemloft.net>2006-10-30 21:55:11 -0500
commitde76e695a5ce19c121ba7e246b45f258be678a75 (patch)
tree6a1a715574371cf4b8b84ef1a4e84d3b14c6fd77 /net/sctp/input.c
parent4f4443088b763ca4ac7521e9b4a881b52c294dec (diff)
[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>
Diffstat (limited to 'net/sctp/input.c')
-rw-r--r--net/sctp/input.c6
1 files changed, 6 insertions, 0 deletions
diff --git a/net/sctp/input.c b/net/sctp/input.c
index 99c0501ca513..6d82f400d13c 100644
--- a/net/sctp/input.c
+++ b/net/sctp/input.c
@@ -771,6 +771,9 @@ static void __sctp_hash_established(struct sctp_association *asoc)
771/* Add an association to the hash. Local BH-safe. */ 771/* Add an association to the hash. Local BH-safe. */
772void sctp_hash_established(struct sctp_association *asoc) 772void sctp_hash_established(struct sctp_association *asoc)
773{ 773{
774 if (asoc->temp)
775 return;
776
774 sctp_local_bh_disable(); 777 sctp_local_bh_disable();
775 __sctp_hash_established(asoc); 778 __sctp_hash_established(asoc);
776 sctp_local_bh_enable(); 779 sctp_local_bh_enable();
@@ -804,6 +807,9 @@ static void __sctp_unhash_established(struct sctp_association *asoc)
804/* Remove association from the hash table. Local BH-safe. */ 807/* Remove association from the hash table. Local BH-safe. */
805void sctp_unhash_established(struct sctp_association *asoc) 808void sctp_unhash_established(struct sctp_association *asoc)
806{ 809{
810 if (asoc->temp)
811 return;
812
807 sctp_local_bh_disable(); 813 sctp_local_bh_disable();
808 __sctp_unhash_established(asoc); 814 __sctp_unhash_established(asoc);
809 sctp_local_bh_enable(); 815 sctp_local_bh_enable();