diff options
| author | Vlad Yasevich <vladislav.yasevich@hp.com> | 2006-10-30 21:55:11 -0500 |
|---|---|---|
| committer | David S. Miller <davem@davemloft.net> | 2006-10-30 21:55:11 -0500 |
| commit | de76e695a5ce19c121ba7e246b45f258be678a75 (patch) | |
| tree | 6a1a715574371cf4b8b84ef1a4e84d3b14c6fd77 /net/sctp/input.c | |
| parent | 4f4443088b763ca4ac7521e9b4a881b52c294dec (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.c | 6 |
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. */ |
| 772 | void sctp_hash_established(struct sctp_association *asoc) | 772 | void 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. */ |
| 805 | void sctp_unhash_established(struct sctp_association *asoc) | 808 | void 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(); |
