sctp: flush out queue once assoc state falls into SHUTDOWN_PENDING
This patch is to flush out queue when assoc state falls into SHUTDOWN_PENDING if there are still chunks in it, so that the data can be sent out as soon as possible before sending SHUTDOWN chunk. When sctp supports MSG_MORE flag in next patch, this improvement can also solve the problem that the chunks with MSG_MORE flag may be stuck in queue when closing an assoc. Signed-off-by: Xin Long <lucien.xin@gmail.com> Signed-off-by: David S. Miller <davem@davemloft.net>
This commit is contained in:
parent
93a66e93c7
commit
b7018d0b63
|
@ -872,6 +872,10 @@ static void sctp_cmd_new_state(sctp_cmd_seq_t *cmds,
|
|||
if (!sctp_style(sk, UDP))
|
||||
sk->sk_state_change(sk);
|
||||
}
|
||||
|
||||
if (sctp_state(asoc, SHUTDOWN_PENDING) &&
|
||||
!sctp_outq_is_empty(&asoc->outqueue))
|
||||
sctp_outq_uncork(&asoc->outqueue, GFP_ATOMIC);
|
||||
}
|
||||
|
||||
/* Helper function to delete an association. */
|
||||
|
|
Loading…
Reference in New Issue