UPSTREAM: tcp: refine tcp_write_queue_empty() implementation
Due to how tcp_sendmsg() is implemented, we can have an empty
skb at the tail of the write queue.
Most [1] tcp_write_queue_empty() callers want to know if there is
anything to send (payload and/or FIN)
Instead of checking if the sk_write_queue is empty, we need
to test if tp->write_seq == tp->snd_nxt
[1] tcp_send_fin() was the only caller that expected to
see if an skb was in the write queue, I have changed the code
to reuse the tcp_write_queue_tail() result.
Signed-off-by: Eric Dumazet <edumazet@google.com>
Cc: Neal Cardwell <ncardwell@google.com>
Acked-by: Soheil Hassas Yeganeh <soheil@google.com>
Signed-off-by: Jakub Kicinski <jakub.kicinski@netronome.com>
(cherry picked from commit ee2aabd3fc2eef4c1a0ebdadccc76fbff74b94fc)
Signed-off-by: Xuewei Zhang <xueweiz@google.com>
BUG=b:145232468
TEST=None
Change-Id: Ibb0c34f77f206132e99ce5765acf26cd29641418
Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/third_party/kernel/+/2055288
Reviewed-by: Sean Paul <seanpaul@chromium.org>
Reviewed-by: Roy Yang <royyang@google.com>
Commit-Queue: Xuewei Zhang <xueweiz@google.com>
Tested-by: Xuewei Zhang <xueweiz@google.com>
2 files changed