ipv6: initialize rt6->rt6i_uncached in all pre-allocated dst entries
Initialize rt6->rt6i_uncached on the following pre-allocated dsts: net->ipv6.ip6_null_entry net->ipv6.ip6_prohibit_entry net->ipv6.ip6_blk_hole_entry This is a preparation patch for later commits to be able to distinguish dst entries in uncached list by doing: !list_empty(rt6->rt6i_uncached) Signed-off-by: Wei Wang <weiwan@google.com> Acked-by: Eric Dumazet <edumazet@google.com> Acked-by: Mahesh Bandewar <maheshb@google.com> Signed-off-by: David S. Miller <davem@davemloft.net>
This commit is contained in:
Родитель
0e09edcce7
Коммит
74109218b0
|
@ -6016,6 +6016,7 @@ static int __net_init ip6_route_net_init(struct net *net)
|
||||||
net->ipv6.ip6_null_entry->dst.ops = &net->ipv6.ip6_dst_ops;
|
net->ipv6.ip6_null_entry->dst.ops = &net->ipv6.ip6_dst_ops;
|
||||||
dst_init_metrics(&net->ipv6.ip6_null_entry->dst,
|
dst_init_metrics(&net->ipv6.ip6_null_entry->dst,
|
||||||
ip6_template_metrics, true);
|
ip6_template_metrics, true);
|
||||||
|
INIT_LIST_HEAD(&net->ipv6.ip6_null_entry->rt6i_uncached);
|
||||||
|
|
||||||
#ifdef CONFIG_IPV6_MULTIPLE_TABLES
|
#ifdef CONFIG_IPV6_MULTIPLE_TABLES
|
||||||
net->ipv6.fib6_has_custom_rules = false;
|
net->ipv6.fib6_has_custom_rules = false;
|
||||||
|
@ -6027,6 +6028,7 @@ static int __net_init ip6_route_net_init(struct net *net)
|
||||||
net->ipv6.ip6_prohibit_entry->dst.ops = &net->ipv6.ip6_dst_ops;
|
net->ipv6.ip6_prohibit_entry->dst.ops = &net->ipv6.ip6_dst_ops;
|
||||||
dst_init_metrics(&net->ipv6.ip6_prohibit_entry->dst,
|
dst_init_metrics(&net->ipv6.ip6_prohibit_entry->dst,
|
||||||
ip6_template_metrics, true);
|
ip6_template_metrics, true);
|
||||||
|
INIT_LIST_HEAD(&net->ipv6.ip6_prohibit_entry->rt6i_uncached);
|
||||||
|
|
||||||
net->ipv6.ip6_blk_hole_entry = kmemdup(&ip6_blk_hole_entry_template,
|
net->ipv6.ip6_blk_hole_entry = kmemdup(&ip6_blk_hole_entry_template,
|
||||||
sizeof(*net->ipv6.ip6_blk_hole_entry),
|
sizeof(*net->ipv6.ip6_blk_hole_entry),
|
||||||
|
@ -6036,6 +6038,7 @@ static int __net_init ip6_route_net_init(struct net *net)
|
||||||
net->ipv6.ip6_blk_hole_entry->dst.ops = &net->ipv6.ip6_dst_ops;
|
net->ipv6.ip6_blk_hole_entry->dst.ops = &net->ipv6.ip6_dst_ops;
|
||||||
dst_init_metrics(&net->ipv6.ip6_blk_hole_entry->dst,
|
dst_init_metrics(&net->ipv6.ip6_blk_hole_entry->dst,
|
||||||
ip6_template_metrics, true);
|
ip6_template_metrics, true);
|
||||||
|
INIT_LIST_HEAD(&net->ipv6.ip6_blk_hole_entry->rt6i_uncached);
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
net->ipv6.sysctl.flush_delay = 0;
|
net->ipv6.sysctl.flush_delay = 0;
|
||||||
|
|
Загрузка…
Ссылка в новой задаче