diff options
| -rw-r--r-- | net/ipv6/ip6_fib.c | 12 |
1 files changed, 6 insertions, 6 deletions
diff --git a/net/ipv6/ip6_fib.c b/net/ipv6/ip6_fib.c index 4de2b9efcacb..944095cf5e32 100644 --- a/net/ipv6/ip6_fib.c +++ b/net/ipv6/ip6_fib.c | |||
| @@ -661,17 +661,17 @@ static int fib6_add_rt2node(struct fib6_node *fn, struct rt6_info *rt, | |||
| 661 | 661 | ||
| 662 | static __inline__ void fib6_start_gc(struct net *net, struct rt6_info *rt) | 662 | static __inline__ void fib6_start_gc(struct net *net, struct rt6_info *rt) |
| 663 | { | 663 | { |
| 664 | if (net->ipv6.ip6_fib_timer->expires == 0 && | 664 | if (!timer_pending(net->ipv6.ip6_fib_timer) && |
| 665 | (rt->rt6i_flags & (RTF_EXPIRES|RTF_CACHE))) | 665 | (rt->rt6i_flags & (RTF_EXPIRES|RTF_CACHE))) |
| 666 | mod_timer(net->ipv6.ip6_fib_timer, jiffies + | 666 | mod_timer(net->ipv6.ip6_fib_timer, |
| 667 | net->ipv6.sysctl.ip6_rt_gc_interval); | 667 | jiffies + net->ipv6.sysctl.ip6_rt_gc_interval); |
| 668 | } | 668 | } |
| 669 | 669 | ||
| 670 | void fib6_force_start_gc(struct net *net) | 670 | void fib6_force_start_gc(struct net *net) |
| 671 | { | 671 | { |
| 672 | if (net->ipv6.ip6_fib_timer->expires == 0) | 672 | if (!timer_pending(net->ipv6.ip6_fib_timer)) |
| 673 | mod_timer(net->ipv6.ip6_fib_timer, jiffies + | 673 | mod_timer(net->ipv6.ip6_fib_timer, |
| 674 | net->ipv6.sysctl.ip6_rt_gc_interval); | 674 | jiffies + net->ipv6.sysctl.ip6_rt_gc_interval); |
| 675 | } | 675 | } |
| 676 | 676 | ||
| 677 | /* | 677 | /* |
