ipv6: copy lwtstate in ip6_rt_copy_init()
authorNicolas Dichtel <nicolas.dichtel@6wind.com>
Fri, 24 Jul 2015 10:28:35 +0000 (12:28 +0200)
committerDavid S. Miller <davem@davemloft.net>
Mon, 27 Jul 2015 08:02:49 +0000 (01:02 -0700)
We need to copy this field (ip6_rt_cache_alloc() and ip6_rt_pcpu_alloc()
use ip6_rt_copy_init() to build a dst).

CC: Thomas Graf <tgraf@suug.ch>
CC: Roopa Prabhu <roopa@cumulusnetworks.com>
Fixes: 19e42e451506 ("ipv6: support for fib route lwtunnel encap attributes")
Signed-off-by: Nicolas Dichtel <nicolas.dichtel@6wind.com>
Acked-by: Thomas Graf <tgraf@suug.ch>
Acked-by: Roopa Prabhu <roopa@cumulusnetworks.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
net/ipv6/route.c

index f91d2637072bf7889bdc65f8a6616450998aba04..fbe27fb6bd3f006416627d5b2da85a37954a635a 100644 (file)
@@ -2161,6 +2161,10 @@ static void ip6_rt_copy_init(struct rt6_info *rt, struct rt6_info *ort)
 #endif
        rt->rt6i_prefsrc = ort->rt6i_prefsrc;
        rt->rt6i_table = ort->rt6i_table;
+       if (ort->rt6i_lwtstate) {
+               lwtunnel_state_get(ort->rt6i_lwtstate);
+               rt->rt6i_lwtstate = ort->rt6i_lwtstate;
+       }
 }
 
 #ifdef CONFIG_IPV6_ROUTE_INFO