struct sockcm_cookie sockc;
int flags, err, copied = 0;
int mss_now = 0, size_goal, copied_syn = 0;
+ bool process_backlog = false;
bool sg;
long timeo;
if (!sk_stream_memory_free(sk))
goto wait_for_sndbuf;
- if (sk_flush_backlog(sk))
+ if (process_backlog && sk_flush_backlog(sk)) {
+ process_backlog = false;
goto restart;
-
+ }
skb = sk_stream_alloc_skb(sk,
select_size(sk, sg),
sk->sk_allocation,
if (!skb)
goto wait_for_memory;
+ process_backlog = true;
/*
* Check whether we can use HW checksum.
*/