aboutsummaryrefslogtreecommitdiffstats
path: root/net/ipv4/tcp_input.c
diff options
context:
space:
mode:
Diffstat (limited to 'net/ipv4/tcp_input.c')
-rw-r--r--net/ipv4/tcp_input.c8
1 files changed, 6 insertions, 2 deletions
diff --git a/net/ipv4/tcp_input.c b/net/ipv4/tcp_input.c
index 9c5b3415413f..eecd359595fc 100644
--- a/net/ipv4/tcp_input.c
+++ b/net/ipv4/tcp_input.c
@@ -4611,8 +4611,10 @@ int tcp_send_rcvq(struct sock *sk, struct msghdr *msg, size_t size)
4611 skb->data_len = data_len; 4611 skb->data_len = data_len;
4612 skb->len = size; 4612 skb->len = size;
4613 4613
4614 if (tcp_try_rmem_schedule(sk, skb, skb->truesize)) 4614 if (tcp_try_rmem_schedule(sk, skb, skb->truesize)) {
4615 NET_INC_STATS(sock_net(sk), LINUX_MIB_TCPRCVQDROP);
4615 goto err_free; 4616 goto err_free;
4617 }
4616 4618
4617 err = skb_copy_datagram_from_iter(skb, 0, &msg->msg_iter, size); 4619 err = skb_copy_datagram_from_iter(skb, 0, &msg->msg_iter, size);
4618 if (err) 4620 if (err)
@@ -4677,8 +4679,10 @@ static void tcp_data_queue(struct sock *sk, struct sk_buff *skb)
4677queue_and_out: 4679queue_and_out:
4678 if (skb_queue_len(&sk->sk_receive_queue) == 0) 4680 if (skb_queue_len(&sk->sk_receive_queue) == 0)
4679 sk_forced_mem_schedule(sk, skb->truesize); 4681 sk_forced_mem_schedule(sk, skb->truesize);
4680 else if (tcp_try_rmem_schedule(sk, skb, skb->truesize)) 4682 else if (tcp_try_rmem_schedule(sk, skb, skb->truesize)) {
4683 NET_INC_STATS(sock_net(sk), LINUX_MIB_TCPRCVQDROP);
4681 goto drop; 4684 goto drop;
4685 }
4682 4686
4683 eaten = tcp_queue_rcv(sk, skb, 0, &fragstolen); 4687 eaten = tcp_queue_rcv(sk, skb, 0, &fragstolen);
4684 tcp_rcv_nxt_update(tp, TCP_SKB_CB(skb)->end_seq); 4688 tcp_rcv_nxt_update(tp, TCP_SKB_CB(skb)->end_seq);