diff options
-rw-r--r-- | net/ipv4/tcp.c | 11 |
1 files changed, 6 insertions, 5 deletions
diff --git a/net/ipv4/tcp.c b/net/ipv4/tcp.c index 168f9de906bc..a6b228914b8e 100644 --- a/net/ipv4/tcp.c +++ b/net/ipv4/tcp.c | |||
@@ -463,11 +463,12 @@ static inline int forced_push(struct tcp_sock *tp) | |||
463 | static inline void skb_entail(struct sock *sk, struct tcp_sock *tp, | 463 | static inline void skb_entail(struct sock *sk, struct tcp_sock *tp, |
464 | struct sk_buff *skb) | 464 | struct sk_buff *skb) |
465 | { | 465 | { |
466 | skb->csum = 0; | 466 | struct tcp_skb_cb *tcb = TCP_SKB_CB(skb); |
467 | TCP_SKB_CB(skb)->seq = tp->write_seq; | 467 | |
468 | TCP_SKB_CB(skb)->end_seq = tp->write_seq; | 468 | skb->csum = 0; |
469 | TCP_SKB_CB(skb)->flags = TCPCB_FLAG_ACK; | 469 | tcb->seq = tcb->end_seq = tp->write_seq; |
470 | TCP_SKB_CB(skb)->sacked = 0; | 470 | tcb->flags = TCPCB_FLAG_ACK; |
471 | tcb->sacked = 0; | ||
471 | skb_header_release(skb); | 472 | skb_header_release(skb); |
472 | __skb_queue_tail(&sk->sk_write_queue, skb); | 473 | __skb_queue_tail(&sk->sk_write_queue, skb); |
473 | sk_charge_skb(sk, skb); | 474 | sk_charge_skb(sk, skb); |