mirror of
https://github.com/Fishwaldo/Star64_linux.git
synced 2025-07-23 23:32:14 +00:00
sctp: remove the dead field of sctp_transport
After we use refcnt to check if transport is alive, the dead can be removed from sctp_transport. The traversal of transport_addr_list in procfs dump is using list_for_each_entry_rcu, no need to check if it has been freed. sctp_generate_t3_rtx_event and sctp_generate_heartbeat_event is protected by sock lock, it's not necessary to check dead, either. also, the timers are cancelled when sctp_transport_free() is called, that it doesn't wait for refcnt to reach 0 to cancel them. Signed-off-by: Xin Long <lucien.xin@gmail.com> Signed-off-by: Marcelo Ricardo Leitner <marcelo.leitner@gmail.com> Signed-off-by: David S. Miller <davem@davemloft.net>
This commit is contained in:
parent
fba4c330c5
commit
47faa1e4c5
4 changed files with 2 additions and 21 deletions
|
@ -259,12 +259,6 @@ void sctp_generate_t3_rtx_event(unsigned long peer)
|
|||
goto out_unlock;
|
||||
}
|
||||
|
||||
/* Is this transport really dead and just waiting around for
|
||||
* the timer to let go of the reference?
|
||||
*/
|
||||
if (transport->dead)
|
||||
goto out_unlock;
|
||||
|
||||
/* Run through the state machine. */
|
||||
error = sctp_do_sm(net, SCTP_EVENT_T_TIMEOUT,
|
||||
SCTP_ST_TIMEOUT(SCTP_EVENT_TIMEOUT_T3_RTX),
|
||||
|
@ -380,12 +374,6 @@ void sctp_generate_heartbeat_event(unsigned long data)
|
|||
goto out_unlock;
|
||||
}
|
||||
|
||||
/* Is this structure just waiting around for us to actually
|
||||
* get destroyed?
|
||||
*/
|
||||
if (transport->dead)
|
||||
goto out_unlock;
|
||||
|
||||
error = sctp_do_sm(net, SCTP_EVENT_T_TIMEOUT,
|
||||
SCTP_ST_TIMEOUT(SCTP_EVENT_TIMEOUT_HEARTBEAT),
|
||||
asoc->state, asoc->ep, asoc,
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue