inet: frags: remove some helpers
authorEric Dumazet <edumazet@google.com>
Thu, 13 Sep 2018 14:58:42 +0000 (07:58 -0700)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Wed, 19 Sep 2018 20:43:46 +0000 (22:43 +0200)
Remove sum_frag_mem_limit(), ip_frag_mem() & ip6_frag_mem()

Also since we use rhashtable we can bring back the number of fragments
in "grep FRAG /proc/net/sockstat /proc/net/sockstat6" that was
removed in commit 434d305405ab ("inet: frag: don't account number
of fragment queues")

Signed-off-by: Eric Dumazet <edumazet@google.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
(cherry picked from commit 6befe4a78b1553edb6eed3a78b4bcd9748526672)
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
include/net/inet_frag.h
include/net/ip.h
include/net/ipv6.h
net/ipv4/ip_fragment.c
net/ipv4/proc.c
net/ipv6/proc.c

index 3fec0d3a0d0186e98afb951784e1fe7329ba6d77..4b5449df0aadf1f75144c98317bf5305ec91d88b 100644 (file)
@@ -141,11 +141,6 @@ static inline void add_frag_mem_limit(struct netns_frags *nf, int i)
        atomic_add(i, &nf->mem);
 }
 
-static inline int sum_frag_mem_limit(struct netns_frags *nf)
-{
-       return atomic_read(&nf->mem);
-}
-
 /* RFC 3168 support :
  * We want to check ECN values of all fragments, do detect invalid combinations.
  * In ipq->ecn, we store the OR value of each ip4_frag_ecn() fragment value.
index 81da1123fc8ea0d6eed89e5f117c0c9be5198982..7c430343176afe769d3e885ca1d3bd5176541c3b 100644 (file)
@@ -570,7 +570,6 @@ static inline struct sk_buff *ip_check_defrag(struct net *net, struct sk_buff *s
        return skb;
 }
 #endif
-int ip_frag_mem(struct net *net);
 
 /*
  *     Functions provided by ip_forward.c
index a271611d341d858827fd4854ecde8b4782131ce6..fa87a62e9bd3b5c0aa132e169689553afd6e727b 100644 (file)
@@ -331,13 +331,6 @@ static inline bool ipv6_accept_ra(struct inet6_dev *idev)
            idev->cnf.accept_ra;
 }
 
-#if IS_ENABLED(CONFIG_IPV6)
-static inline int ip6_frag_mem(struct net *net)
-{
-       return sum_frag_mem_limit(&net->ipv6.frags);
-}
-#endif
-
 #define IPV6_FRAG_HIGH_THRESH  (4 * 1024*1024) /* 4194304 */
 #define IPV6_FRAG_LOW_THRESH   (3 * 1024*1024) /* 3145728 */
 #define IPV6_FRAG_TIMEOUT      (60 * HZ)       /* 60 seconds */
index 1d3b82e96c4532081d455e641bbf6f959d06d29f..94451fad99947d023a007a6bf234af9ca120cc4f 100644 (file)
@@ -83,11 +83,6 @@ static u8 ip4_frag_ecn(u8 tos)
 
 static struct inet_frags ip4_frags;
 
-int ip_frag_mem(struct net *net)
-{
-       return sum_frag_mem_limit(&net->ipv4.frags);
-}
-
 static int ip_frag_reasm(struct ipq *qp, struct sk_buff *prev,
                         struct net_device *dev);
 
index 127153f1ed8a7894e0b2d2059af08bdcc6a00236..01a337c3a36bebf2b60b7d4f873f0cc1dfe0b265 100644 (file)
@@ -54,7 +54,6 @@
 static int sockstat_seq_show(struct seq_file *seq, void *v)
 {
        struct net *net = seq->private;
-       unsigned int frag_mem;
        int orphans, sockets;
 
        orphans = percpu_counter_sum_positive(&tcp_orphan_count);
@@ -72,8 +71,9 @@ static int sockstat_seq_show(struct seq_file *seq, void *v)
                   sock_prot_inuse_get(net, &udplite_prot));
        seq_printf(seq, "RAW: inuse %d\n",
                   sock_prot_inuse_get(net, &raw_prot));
-       frag_mem = ip_frag_mem(net);
-       seq_printf(seq,  "FRAG: inuse %u memory %u\n", !!frag_mem, frag_mem);
+       seq_printf(seq,  "FRAG: inuse %u memory %u\n",
+                  atomic_read(&net->ipv4.frags.rhashtable.nelems),
+                  frag_mem_limit(&net->ipv4.frags));
        return 0;
 }
 
index e88bcb8ff0fd73b8377f5e0d3c3d1fa524ef1da8..5704ec3d317808420c67eaff61fd3b03865c7719 100644 (file)
@@ -38,7 +38,6 @@
 static int sockstat6_seq_show(struct seq_file *seq, void *v)
 {
        struct net *net = seq->private;
-       unsigned int frag_mem = ip6_frag_mem(net);
 
        seq_printf(seq, "TCP6: inuse %d\n",
                       sock_prot_inuse_get(net, &tcpv6_prot));
@@ -48,7 +47,9 @@ static int sockstat6_seq_show(struct seq_file *seq, void *v)
                        sock_prot_inuse_get(net, &udplitev6_prot));
        seq_printf(seq, "RAW6: inuse %d\n",
                       sock_prot_inuse_get(net, &rawv6_prot));
-       seq_printf(seq, "FRAG6: inuse %u memory %u\n", !!frag_mem, frag_mem);
+       seq_printf(seq, "FRAG6: inuse %u memory %u\n",
+                  atomic_read(&net->ipv6.frags.rhashtable.nelems),
+                  frag_mem_limit(&net->ipv6.frags));
        return 0;
 }