On 9/10/18 7:04 PM, Hangbin Liu wrote: > diff --git a/net/ipv6/route.c b/net/ipv6/route.c > index 18e00ce..62621b4 100644 > --- a/net/ipv6/route.c > +++ b/net/ipv6/route.c > @@ -998,6 +998,21 @@ static void ip6_rt_copy_init(struct rt6_info *rt, struct > fib6_info *ort) > rt->rt6i_prefsrc = ort->fib6_prefsrc; > } > > +static void rt6_update_info(struct rt6_info *rt) > +{ > + struct fib6_info *from; > + > + rcu_read_lock(); > + from = rcu_dereference(rt->from); > + fib6_info_hold(from); > + rcu_read_unlock(); > + > + from->fib6_flags = rt->rt6i_flags; > + from->fib6_nh.nh_gw = rt->rt6i_gateway;
As I mentioned on your last patch, redirects do *not* update fib entries. Exceptions, yes, but not core data of a fib entry.