Commit 10585b43 authored by David Ahern's avatar David Ahern Committed by David S. Miller

ipv6: Remove fallback argument from ip6_hold_safe

net and null_fallback are redundant. Remove null_fallback in favor of
!net check.
Signed-off-by: default avatarDavid Ahern <dsahern@gmail.com>
Acked-by: default avatarWei Wang <weiwan@google.com>
Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
parent 9ab948a9
...@@ -1015,14 +1015,13 @@ static struct fib6_node* fib6_backtrack(struct fib6_node *fn, ...@@ -1015,14 +1015,13 @@ static struct fib6_node* fib6_backtrack(struct fib6_node *fn,
} }
} }
static bool ip6_hold_safe(struct net *net, struct rt6_info **prt, static bool ip6_hold_safe(struct net *net, struct rt6_info **prt)
bool null_fallback)
{ {
struct rt6_info *rt = *prt; struct rt6_info *rt = *prt;
if (dst_hold_safe(&rt->dst)) if (dst_hold_safe(&rt->dst))
return true; return true;
if (null_fallback) { if (net) {
rt = net->ipv6.ip6_null_entry; rt = net->ipv6.ip6_null_entry;
dst_hold(&rt->dst); dst_hold(&rt->dst);
} else { } else {
...@@ -1089,7 +1088,7 @@ static struct rt6_info *ip6_pol_route_lookup(struct net *net, ...@@ -1089,7 +1088,7 @@ static struct rt6_info *ip6_pol_route_lookup(struct net *net,
/* Search through exception table */ /* Search through exception table */
rt = rt6_find_cached_rt(f6i, &fl6->daddr, &fl6->saddr); rt = rt6_find_cached_rt(f6i, &fl6->daddr, &fl6->saddr);
if (rt) { if (rt) {
if (ip6_hold_safe(net, &rt, true)) if (ip6_hold_safe(net, &rt))
dst_use_noref(&rt->dst, jiffies); dst_use_noref(&rt->dst, jiffies);
} else if (f6i == net->ipv6.fib6_null_entry) { } else if (f6i == net->ipv6.fib6_null_entry) {
rt = net->ipv6.ip6_null_entry; rt = net->ipv6.ip6_null_entry;
...@@ -1240,7 +1239,7 @@ static struct rt6_info *rt6_get_pcpu_route(struct fib6_info *rt) ...@@ -1240,7 +1239,7 @@ static struct rt6_info *rt6_get_pcpu_route(struct fib6_info *rt)
pcpu_rt = *p; pcpu_rt = *p;
if (pcpu_rt) if (pcpu_rt)
ip6_hold_safe(NULL, &pcpu_rt, false); ip6_hold_safe(NULL, &pcpu_rt);
return pcpu_rt; return pcpu_rt;
} }
...@@ -1865,7 +1864,7 @@ struct rt6_info *ip6_pol_route(struct net *net, struct fib6_table *table, ...@@ -1865,7 +1864,7 @@ struct rt6_info *ip6_pol_route(struct net *net, struct fib6_table *table,
/*Search through exception table */ /*Search through exception table */
rt = rt6_find_cached_rt(f6i, &fl6->daddr, &fl6->saddr); rt = rt6_find_cached_rt(f6i, &fl6->daddr, &fl6->saddr);
if (rt) { if (rt) {
if (ip6_hold_safe(net, &rt, true)) if (ip6_hold_safe(net, &rt))
dst_use_noref(&rt->dst, jiffies); dst_use_noref(&rt->dst, jiffies);
rcu_read_unlock(); rcu_read_unlock();
...@@ -2480,7 +2479,7 @@ static struct rt6_info *__ip6_route_redirect(struct net *net, ...@@ -2480,7 +2479,7 @@ static struct rt6_info *__ip6_route_redirect(struct net *net,
out: out:
if (ret) if (ret)
ip6_hold_safe(net, &ret, true); ip6_hold_safe(net, &ret);
else else
ret = ip6_create_rt_rcu(rt); ret = ip6_create_rt_rcu(rt);
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment