fib6: use FIB_LOOKUP_NOREF in fib6_rule_lookup()
authorEric Dumazet <eric.dumazet@gmail.com>
Wed, 13 Oct 2010 02:45:40 +0000 (02:45 +0000)
committerDavid S. Miller <davem@davemloft.net>
Sat, 16 Oct 2010 18:13:21 +0000 (11:13 -0700)
Avoid two atomic ops on found rule in fib6_rule_lookup()

Signed-off-by: Eric Dumazet <eric.dumazet@gmail.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
net/ipv6/fib6_rules.c

index b1108ede18e1c4cec4eea90f9741441add7047fb..d829874d8946e75e6735fd8df4c0ad6facf58bc0 100644 (file)
@@ -34,11 +34,10 @@ struct dst_entry *fib6_rule_lookup(struct net *net, struct flowi *fl,
 {
        struct fib_lookup_arg arg = {
                .lookup_ptr = lookup,
+               .flags = FIB_LOOKUP_NOREF,
        };
 
        fib_rules_lookup(net->ipv6.fib6_rules_ops, fl, flags, &arg);
-       if (arg.rule)
-               fib_rule_put(arg.rule);
 
        if (arg.result)
                return arg.result;