diff options
Diffstat (limited to 'net/ipv6/udp.c')
-rw-r--r-- | net/ipv6/udp.c | 14 |
1 files changed, 13 insertions, 1 deletions
diff --git a/net/ipv6/udp.c b/net/ipv6/udp.c index 99d0077b56b..fc9997260a6 100644 --- a/net/ipv6/udp.c +++ b/net/ipv6/udp.c | |||
@@ -394,6 +394,17 @@ try_again: | |||
394 | } | 394 | } |
395 | if (unlikely(err)) { | 395 | if (unlikely(err)) { |
396 | trace_kfree_skb(skb, udpv6_recvmsg); | 396 | trace_kfree_skb(skb, udpv6_recvmsg); |
397 | if (!peeked) { | ||
398 | atomic_inc(&sk->sk_drops); | ||
399 | if (is_udp4) | ||
400 | UDP_INC_STATS_USER(sock_net(sk), | ||
401 | UDP_MIB_INERRORS, | ||
402 | is_udplite); | ||
403 | else | ||
404 | UDP6_INC_STATS_USER(sock_net(sk), | ||
405 | UDP_MIB_INERRORS, | ||
406 | is_udplite); | ||
407 | } | ||
397 | goto out_free; | 408 | goto out_free; |
398 | } | 409 | } |
399 | if (!peeked) { | 410 | if (!peeked) { |
@@ -1458,7 +1469,8 @@ static void udp6_sock_seq_show(struct seq_file *seq, struct sock *sp, int bucket | |||
1458 | sk_wmem_alloc_get(sp), | 1469 | sk_wmem_alloc_get(sp), |
1459 | sk_rmem_alloc_get(sp), | 1470 | sk_rmem_alloc_get(sp), |
1460 | 0, 0L, 0, | 1471 | 0, 0L, 0, |
1461 | sock_i_uid(sp), 0, | 1472 | from_kuid_munged(seq_user_ns(seq), sock_i_uid(sp)), |
1473 | 0, | ||
1462 | sock_i_ino(sp), | 1474 | sock_i_ino(sp), |
1463 | atomic_read(&sp->sk_refcnt), sp, | 1475 | atomic_read(&sp->sk_refcnt), sp, |
1464 | atomic_read(&sp->sk_drops)); | 1476 | atomic_read(&sp->sk_drops)); |