mirror of https://gitee.com/openkylin/linux.git
subflow: use rsk_ops->send_reset()
tcp_send_active_reset() is more prone to transient errors (memory allocation or xmit queue full): in stress conditions the kernel may drop the egress packet, and the client will be stuck. Reviewed-by: Mat Martineau <mathew.j.martineau@linux.intel.com> Tested-by: Christoph Paasch <cpaasch@apple.com> Signed-off-by: Paolo Abeni <pabeni@redhat.com> Signed-off-by: David S. Miller <davem@davemloft.net>
This commit is contained in:
parent
b7514694ed
commit
97e617518c
|
@ -524,9 +524,9 @@ static struct sock *subflow_syn_recv_sock(const struct sock *sk,
|
|||
dispose_child:
|
||||
subflow_drop_ctx(child);
|
||||
tcp_rsk(req)->drop_req = true;
|
||||
tcp_send_active_reset(child, GFP_ATOMIC);
|
||||
inet_csk_prepare_for_destroy_sock(child);
|
||||
tcp_done(child);
|
||||
req->rsk_ops->send_reset(sk, skb);
|
||||
|
||||
/* The last child reference will be released by the caller */
|
||||
return child;
|
||||
|
|
Loading…
Reference in New Issue