tcp: cleanup tcp_remove_empty_skb() use

All tcp_remove_empty_skb() callers now use tcp_write_queue_tail()
for the skb argument, we can therefore factorize code.

Signed-off-by: Eric Dumazet <edumazet@google.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
This commit is contained in:
Eric Dumazet 2021-10-27 13:19:18 -07:00 committed by David S. Miller
parent 3ded97bc41
commit 27728ba80f
3 changed files with 8 additions and 7 deletions

View File

@ -311,7 +311,7 @@ void tcp_shutdown(struct sock *sk, int how);
int tcp_v4_early_demux(struct sk_buff *skb);
int tcp_v4_rcv(struct sk_buff *skb);
void tcp_remove_empty_skb(struct sock *sk, struct sk_buff *skb);
void tcp_remove_empty_skb(struct sock *sk);
int tcp_v4_tw_remember_stamp(struct inet_timewait_sock *tw);
int tcp_sendmsg(struct sock *sk, struct msghdr *msg, size_t size);
int tcp_sendmsg_locked(struct sock *sk, struct msghdr *msg, size_t size);

View File

@ -933,8 +933,10 @@ int tcp_send_mss(struct sock *sk, int *size_goal, int flags)
* importantly be able to generate EPOLLOUT for Edge Trigger epoll()
* users.
*/
void tcp_remove_empty_skb(struct sock *sk, struct sk_buff *skb)
void tcp_remove_empty_skb(struct sock *sk)
{
struct sk_buff *skb = tcp_write_queue_tail(sk);
if (skb && TCP_SKB_CB(skb)->seq == TCP_SKB_CB(skb)->end_seq) {
tcp_unlink_write_queue(skb, sk);
if (tcp_write_queue_empty(sk))
@ -1087,7 +1089,7 @@ out:
return copied;
do_error:
tcp_remove_empty_skb(sk, tcp_write_queue_tail(sk));
tcp_remove_empty_skb(sk);
if (copied)
goto out;
out_err:
@ -1408,8 +1410,7 @@ out_nopush:
return copied + copied_syn;
do_error:
skb = tcp_write_queue_tail(sk);
tcp_remove_empty_skb(sk, skb);
tcp_remove_empty_skb(sk);
if (copied + copied_syn)
goto out;

View File

@ -1291,7 +1291,7 @@ alloc_skb:
u64 snd_una = READ_ONCE(msk->snd_una);
if (snd_una != msk->snd_nxt) {
tcp_remove_empty_skb(ssk, tcp_write_queue_tail(ssk));
tcp_remove_empty_skb(ssk);
return 0;
}
@ -1307,7 +1307,7 @@ alloc_skb:
copy = min_t(size_t, copy, info->limit - info->sent);
if (!sk_wmem_schedule(ssk, copy)) {
tcp_remove_empty_skb(ssk, tcp_write_queue_tail(ssk));
tcp_remove_empty_skb(ssk);
return -ENOMEM;
}