Re: [PATCH net v2] sctp: donot reset the overall_error_count in SHUTDOWN_RECEIVE state
From: David Miller <davem@davemloft.net>
Date: 2015-08-26 02:46:58
From: Xin Long <lucien.xin@gmail.com> Date: Sun, 23 Aug 2015 19:30:15 +0800 Vlad et al., please review.
quoted hunk ↗ jump to hunk
commit f8d960524 fix the 0 peer.rwnd issue in SHUTDOWN_PENDING state through not reseting the overall_error_count when receive a heartbeat, but the same issue also exists in SHUTDOWN_RECEIVE state. so we change the condition to state < SCTP_STATE_SHUTDOWN_PENDING to reset the overall_error_count when receive a heartbeat, which can avoid the issue happen in SCTP_STATE_SHUTDOWN_RECEIVE. as to SCTP_STATE_SHUTDOWN_ACK_SENT and SCTP_STATE_SHUTDOWN_SENT state, with this patch, it will not be affected by the heartbeat, cause these two states have been taken charge of by t2 timer. Fixes: f8d960524 ("sctp: Enforce retransmission limit during shutdown") Signed-off-by: Xin Long <lucien.xin@gmail.com> --- net/sctp/sm_sideeffect.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-)diff --git a/net/sctp/sm_sideeffect.c b/net/sctp/sm_sideeffect.c index fef2acd..85e6f03 100644 --- a/net/sctp/sm_sideeffect.c +++ b/net/sctp/sm_sideeffect.c@@ -702,7 +702,7 @@ static void sctp_cmd_transport_on(sctp_cmd_seq_t *cmds, * outstanding data and rely on the retransmission limit be reached * to shutdown the association. */ - if (t->asoc->state != SCTP_STATE_SHUTDOWN_PENDING) + if (t->asoc->state < SCTP_STATE_SHUTDOWN_PENDING) t->asoc->overall_error_count = 0; /* Clear the hb_sent flag to signal that we had a good-- 2.1.0