|
@@ -1795,8 +1795,10 @@ static int fib6_age(struct rt6_info *rt, void *arg)
|
|
|
}
|
|
}
|
|
|
gc_args->more++;
|
|
gc_args->more++;
|
|
|
} else if (rt->rt6i_flags & RTF_CACHE) {
|
|
} else if (rt->rt6i_flags & RTF_CACHE) {
|
|
|
|
|
+ if (time_after_eq(now, rt->dst.lastuse + gc_args->timeout))
|
|
|
|
|
+ rt->dst.obsolete = DST_OBSOLETE_KILL;
|
|
|
if (atomic_read(&rt->dst.__refcnt) == 1 &&
|
|
if (atomic_read(&rt->dst.__refcnt) == 1 &&
|
|
|
- time_after_eq(now, rt->dst.lastuse + gc_args->timeout)) {
|
|
|
|
|
|
|
+ rt->dst.obsolete == DST_OBSOLETE_KILL) {
|
|
|
RT6_TRACE("aging clone %p\n", rt);
|
|
RT6_TRACE("aging clone %p\n", rt);
|
|
|
return -1;
|
|
return -1;
|
|
|
} else if (rt->rt6i_flags & RTF_GATEWAY) {
|
|
} else if (rt->rt6i_flags & RTF_GATEWAY) {
|