From: Vlad Yasevich Date: Tue, 23 Jun 2009 15:28:05 +0000 (-0400) Subject: sctp: release cached route when the transport goes down. X-Git-Tag: v2.6.32-rc1~703^2~78 X-Git-Url: https://bbs.cooldavid.org/git/?a=commitdiff_plain;h=40187886bc31aee9c5c6f08f46cde4ab618e9736;p=net-next-2.6.git sctp: release cached route when the transport goes down. When the sctp transport is marked down, we can release the cached route and force a new lookup when attempting to use this transport for anything. This way, if a better route or source address is available, we'll try to use it. Signed-off-by: Vlad Yasevich --- diff --git a/net/sctp/associola.c b/net/sctp/associola.c index 525864bf4f0..215b56951d7 100644 --- a/net/sctp/associola.c +++ b/net/sctp/associola.c @@ -810,11 +810,16 @@ void sctp_assoc_control_transport(struct sctp_association *asoc, break; case SCTP_TRANSPORT_DOWN: - /* if the transort was never confirmed, do not transition it - * to inactive state. + /* If the transport was never confirmed, do not transition it + * to inactive state. Also, release the cached route since + * there may be a better route next time. */ if (transport->state != SCTP_UNCONFIRMED) transport->state = SCTP_INACTIVE; + else { + dst_release(transport->dst); + transport->dst = NULL; + } spc_state = SCTP_ADDR_UNREACHABLE; break;