Lines Matching full:leaf

240 		rcu_assign_pointer(table->tb6_root.leaf,  in fib6_alloc_table()
471 err = fib6_rt_dump(w->leaf, w->args); in fib6_node_dump()
472 w->leaf = NULL; in fib6_node_dump()
534 w->leaf = rt; in fib6_dump_node()
555 w->leaf = NULL; in fib6_dump_node()
773 struct fib6_info *leaf = rcu_dereference_protected(fn->leaf, in fib6_add_1() local
775 key = (struct rt6key *)((u8 *)leaf + offset); in fib6_add_1()
801 RCU_INIT_POINTER(fn->leaf, NULL); in fib6_add_1()
802 fib6_info_release(leaf); in fib6_add_1()
805 rcu_access_pointer(fn->leaf) == in fib6_add_1()
807 RCU_INIT_POINTER(fn->leaf, NULL); in fib6_add_1()
847 * Create new leaf node without children. in fib6_add_1()
888 * (new leaf node)[ln] (old node)[fn] in fib6_add_1()
913 in->leaf = fn->leaf; in fib6_add_1()
914 fib6_info_hold(rcu_dereference_protected(in->leaf, in fib6_add_1()
938 * (new leaf node)[ln] in fib6_add_1()
1057 struct fib6_info *leaf = rcu_dereference_protected(fn->leaf, in fib6_purge_rt() local
1060 if (!(fn->fn_flags & RTN_RTINFO) && leaf == rt) { in fib6_purge_rt()
1064 rcu_assign_pointer(fn->leaf, new_leaf); in fib6_purge_rt()
1084 struct fib6_info *leaf = rcu_dereference_protected(fn->leaf, in fib6_add_rt2node() local
1102 ins = &fn->leaf; in fib6_add_rt2node()
1104 for (iter = leaf; iter; in fib6_add_rt2node()
1182 if (ins == &fn->leaf) in fib6_add_rt2node()
1191 sibling = leaf; in fib6_add_rt2node()
1237 (notify_sibling_rt || ins == &fn->leaf)) { in fib6_add_rt2node()
1293 if (!info->skip_notify_kernel && ins == &fn->leaf) { in fib6_add_rt2node()
1466 * sn[new leaf node] in fib6_add()
1475 rcu_assign_pointer(sfn->leaf, in fib6_add()
1479 /* Now add the first leaf node to new subtree */ in fib6_add()
1511 if (!rcu_access_pointer(fn->leaf)) { in fib6_add()
1514 rcu_assign_pointer(fn->leaf, in fib6_add()
1518 rcu_assign_pointer(fn->leaf, rt); in fib6_add()
1550 * If fib6_add_1 has cleared the old leaf pointer in the in fib6_add()
1551 * super-tree leaf node we have to find a new one for it. in fib6_add()
1555 rcu_dereference_protected(pn->leaf, in fib6_add()
1559 RCU_INIT_POINTER(pn->leaf, NULL); in fib6_add()
1569 rcu_assign_pointer(pn->leaf, pn_leaf); in fib6_add()
1580 /* fn->leaf could be NULL and fib6_repair_tree() needs to be called if: in fib6_add()
1590 !rcu_access_pointer(fn->leaf)))) in fib6_add()
1639 struct fib6_info *leaf = rcu_dereference(fn->leaf); in fib6_node_lookup_1() local
1642 if (!leaf) in fib6_node_lookup_1()
1645 key = (struct rt6key *) ((u8 *)leaf + args->offset); in fib6_node_lookup_1()
1722 struct fib6_info *leaf = rcu_dereference(fn->leaf); in fib6_locate_1() local
1726 if (!leaf) { in fib6_locate_1()
1733 key = (struct rt6key *)((u8 *)leaf + offset); in fib6_locate_1()
1817 return rcu_dereference_protected(child_left->leaf, in fib6_find_prefix()
1820 return rcu_dereference_protected(child_right->leaf, in fib6_find_prefix()
1844 /* Set fn->leaf to null_entry for root node. */ in fib6_repair_tree()
1846 rcu_assign_pointer(fn->leaf, net->ipv6.fib6_null_entry); in fib6_repair_tree()
1861 struct fib6_info *fn_leaf = rcu_dereference_protected(fn->leaf, in fib6_repair_tree()
1863 struct fib6_info *pn_leaf = rcu_dereference_protected(pn->leaf, in fib6_repair_tree()
1899 rcu_assign_pointer(fn->leaf, new_fn_leaf); in fib6_repair_tree()
1956 RCU_INIT_POINTER(pn->leaf, NULL); in fib6_repair_tree()
1965 struct fib6_info *leaf, *replace_rt = NULL; in fib6_del_route() local
1976 leaf = rcu_dereference_protected(fn->leaf, in fib6_del_route()
1978 if (leaf == rt && !rt->fib6_nsiblings) { in fib6_del_route()
2005 if (rt->fib6_metric == leaf->fib6_metric && in fib6_del_route()
2006 rt6_qualify_for_ecmp(leaf)) in fib6_del_route()
2020 if (w->state == FWS_C && w->leaf == rt) { in fib6_del_route()
2022 w->leaf = rcu_dereference_protected(rt->fib6_next, in fib6_del_route()
2024 if (!w->leaf) in fib6_del_route()
2034 if (!rcu_access_pointer(fn->leaf)) { in fib6_del_route()
2078 * Walk the leaf entries looking for ourself in fib6_del()
2081 for (rtp = &fn->leaf; *rtp; rtp = rtp_next) { in fib6_del()
2160 w->leaf = rcu_dereference_protected(fn->leaf, 1); in fib6_walk_continue()
2163 if (w->leaf && fn->fn_flags & RTN_RTINFO) { in fib6_walk_continue()
2201 w->leaf = rcu_dereference_protected(w->node->leaf, 1); in fib6_walk_continue()
2241 w->leaf = NULL; in fib6_clean_node()
2248 w->leaf = rt; in fib6_clean_node()
2269 w->leaf = rt; in fib6_clean_node()
2481 rcu_assign_pointer(net->ipv6.fib6_main_tbl->tb6_root.leaf, in fib6_net_init()
2494 rcu_assign_pointer(net->ipv6.fib6_local_tbl->tb6_root.leaf, in fib6_net_init()
2615 iter->w.leaf = NULL; in ipv6_route_native_seq_show()
2627 iter->w.leaf = rcu_dereference_protected( in ipv6_route_yield()
2628 iter->w.leaf->fib6_next, in ipv6_route_yield()
2631 if (!iter->skip && iter->w.leaf) in ipv6_route_yield()
2633 } while (iter->w.leaf); in ipv6_route_yield()
2707 return iter->w.leaf; in ipv6_route_seq_next()
2785 iter->w.leaf = NULL; in ipv6_route_seq_show()