]> git.baikalelectronics.ru Git - kernel.git/commitdiff
inet: remove dead inetpeer sequence code
authorWillem de Bruijn <willemb@google.com>
Mon, 8 Sep 2014 23:08:34 +0000 (19:08 -0400)
committerDavid S. Miller <davem@davemloft.net>
Mon, 8 Sep 2014 23:42:42 +0000 (16:42 -0700)
inetpeer sequence numbers are no longer incremented, so no need to
check and flush the tree. The function that increments the sequence
number was already dead code and removed in in "ipv4: remove unused
function" (320e83e6). Remove the code that checks for a change, too.

Verifying that v4_seq and v6_seq are never incremented and thus that
flush_check compares bp->flush_seq to 0 is trivial.

The second part of the change removes flush_check completely even
though bp->flush_seq is exactly !0 once, at initialization. This
change is correct because the time this branch is true is when
bp->root == peer_avl_empty_rcu, in which the branch and
inetpeer_invalidate_tree are a NOOP.

Signed-off-by: Willem de Bruijn <willemb@google.com>
Acked-by: Eric Dumazet <edumazet@google.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
include/net/inetpeer.h
net/ipv4/inetpeer.c

index 01d590ee5e7eb5250eaef9e0880153c257b706bd..80479abddf73cc181899e1115a572727f578633d 100644 (file)
@@ -61,7 +61,6 @@ struct inet_peer {
 struct inet_peer_base {
        struct inet_peer __rcu  *root;
        seqlock_t               lock;
-       u32                     flush_seq;
        int                     total;
 };
 
index bd5f5928167dbd44c72fbd1a5eefd475bd29f260..241afd743d2ccfda93bfb42b928020f2d9dc0486 100644 (file)
@@ -72,29 +72,10 @@ void inet_peer_base_init(struct inet_peer_base *bp)
 {
        bp->root = peer_avl_empty_rcu;
        seqlock_init(&bp->lock);
-       bp->flush_seq = ~0U;
        bp->total = 0;
 }
 EXPORT_SYMBOL_GPL(inet_peer_base_init);
 
-static atomic_t v4_seq = ATOMIC_INIT(0);
-static atomic_t v6_seq = ATOMIC_INIT(0);
-
-static atomic_t *inetpeer_seq_ptr(int family)
-{
-       return (family == AF_INET ? &v4_seq : &v6_seq);
-}
-
-static inline void flush_check(struct inet_peer_base *base, int family)
-{
-       atomic_t *fp = inetpeer_seq_ptr(family);
-
-       if (unlikely(base->flush_seq != atomic_read(fp))) {
-               inetpeer_invalidate_tree(base);
-               base->flush_seq = atomic_read(fp);
-       }
-}
-
 #define PEER_MAXDEPTH 40 /* sufficient for about 2^27 nodes */
 
 /* Exported for sysctl_net_ipv4.  */
@@ -444,8 +425,6 @@ struct inet_peer *inet_getpeer(struct inet_peer_base *base,
        unsigned int sequence;
        int invalidated, gccnt = 0;
 
-       flush_check(base, daddr->family);
-
        /* Attempt a lockless lookup first.
         * Because of a concurrent writer, we might not find an existing entry.
         */