diff options
author | Eric Dumazet <eric.dumazet@gmail.com> | 2010-10-12 22:45:40 -0400 |
---|---|---|
committer | David S. Miller <davem@davemloft.net> | 2010-10-16 14:13:21 -0400 |
commit | 2c1c00040af3d187b7d602dd53b5adbbf3a4caa4 (patch) | |
tree | 88611bd6da79d83621ec56b7093f999795c31580 /net/ipv6/fib6_rules.c | |
parent | 725a4a465c943ab0f91fcffc3846acbcdb704aac (diff) |
fib6: use FIB_LOOKUP_NOREF in fib6_rule_lookup()
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>
Diffstat (limited to 'net/ipv6/fib6_rules.c')
-rw-r--r-- | net/ipv6/fib6_rules.c | 3 |
1 files changed, 1 insertions, 2 deletions
diff --git a/net/ipv6/fib6_rules.c b/net/ipv6/fib6_rules.c index b1108ede18e1..d829874d8946 100644 --- a/net/ipv6/fib6_rules.c +++ b/net/ipv6/fib6_rules.c | |||
@@ -34,11 +34,10 @@ struct dst_entry *fib6_rule_lookup(struct net *net, struct flowi *fl, | |||
34 | { | 34 | { |
35 | struct fib_lookup_arg arg = { | 35 | struct fib_lookup_arg arg = { |
36 | .lookup_ptr = lookup, | 36 | .lookup_ptr = lookup, |
37 | .flags = FIB_LOOKUP_NOREF, | ||
37 | }; | 38 | }; |
38 | 39 | ||
39 | fib_rules_lookup(net->ipv6.fib6_rules_ops, fl, flags, &arg); | 40 | fib_rules_lookup(net->ipv6.fib6_rules_ops, fl, flags, &arg); |
40 | if (arg.rule) | ||
41 | fib_rule_put(arg.rule); | ||
42 | 41 | ||
43 | if (arg.result) | 42 | if (arg.result) |
44 | return arg.result; | 43 | return arg.result; |