Lines Matching defs:leaf
245 rcu_assign_pointer(table->tb6_root.leaf,
461 err = fib6_rt_dump(w->leaf, w->args);
462 w->leaf = NULL;
524 w->leaf = rt;
545 w->leaf = NULL;
761 struct fib6_info *leaf = rcu_dereference_protected(fn->leaf,
763 key = (struct rt6key *)((u8 *)leaf + offset);
789 RCU_INIT_POINTER(fn->leaf, NULL);
790 fib6_info_release(leaf);
793 rcu_access_pointer(fn->leaf) ==
795 RCU_INIT_POINTER(fn->leaf, NULL);
835 * Create new leaf node without children.
876 * (new leaf node)[ln] (old node)[fn]
901 in->leaf = fn->leaf;
902 fib6_info_hold(rcu_dereference_protected(in->leaf,
926 * (new leaf node)[ln]
1046 struct fib6_info *leaf = rcu_dereference_protected(fn->leaf,
1049 if (!(fn->fn_flags & RTN_RTINFO) && leaf == rt) {
1053 rcu_assign_pointer(fn->leaf, new_leaf);
1070 struct fib6_info *leaf = rcu_dereference_protected(fn->leaf,
1088 ins = &fn->leaf;
1090 for (iter = leaf; iter;
1164 if (ins == &fn->leaf)
1173 sibling = leaf;
1216 (notify_sibling_rt || ins == &fn->leaf)) {
1269 if (!info->skip_notify_kernel && ins == &fn->leaf) {
1418 * sn[new leaf node]
1427 rcu_assign_pointer(sfn->leaf,
1431 /* Now add the first leaf node to new subtree */
1463 if (!rcu_access_pointer(fn->leaf)) {
1466 rcu_assign_pointer(fn->leaf,
1470 rcu_assign_pointer(fn->leaf, rt);
1489 * If fib6_add_1 has cleared the old leaf pointer in the
1490 * super-tree leaf node we have to find a new one for it.
1494 rcu_dereference_protected(pn->leaf,
1498 RCU_INIT_POINTER(pn->leaf, NULL);
1508 rcu_assign_pointer(pn->leaf, pn_leaf);
1519 /* fn->leaf could be NULL and fib6_repair_tree() needs to be called if:
1529 !rcu_access_pointer(fn->leaf))))
1578 struct fib6_info *leaf = rcu_dereference(fn->leaf);
1581 if (!leaf)
1584 key = (struct rt6key *) ((u8 *)leaf + args->offset);
1661 struct fib6_info *leaf = rcu_dereference(fn->leaf);
1665 if (!leaf) {
1672 key = (struct rt6key *)((u8 *)leaf + offset);
1756 return rcu_dereference_protected(child_left->leaf,
1759 return rcu_dereference_protected(child_right->leaf,
1783 /* Set fn->leaf to null_entry for root node. */
1785 rcu_assign_pointer(fn->leaf, net->ipv6.fib6_null_entry);
1800 struct fib6_info *fn_leaf = rcu_dereference_protected(fn->leaf,
1802 struct fib6_info *pn_leaf = rcu_dereference_protected(pn->leaf,
1838 rcu_assign_pointer(fn->leaf, new_fn_leaf);
1892 RCU_INIT_POINTER(pn->leaf, NULL);
1901 struct fib6_info *leaf, *replace_rt = NULL;
1914 leaf = rcu_dereference_protected(fn->leaf,
1916 if (leaf == rt && !rt->fib6_nsiblings) {
1943 if (rt->fib6_metric == leaf->fib6_metric &&
1944 rt6_qualify_for_ecmp(leaf))
1957 if (w->state == FWS_C && w->leaf == rt) {
1959 w->leaf = rcu_dereference_protected(rt->fib6_next,
1961 if (!w->leaf)
1971 if (!rcu_access_pointer(fn->leaf)) {
2015 * Walk the leaf entries looking for ourself
2018 for (rtp = &fn->leaf; *rtp; rtp = rtp_next) {
2097 w->leaf = rcu_dereference_protected(fn->leaf, 1);
2100 if (w->leaf && fn->fn_flags & RTN_RTINFO) {
2138 w->leaf = rcu_dereference_protected(w->node->leaf, 1);
2178 w->leaf = NULL;
2185 w->leaf = rt;
2206 w->leaf = rt;
2381 rcu_assign_pointer(net->ipv6.fib6_main_tbl->tb6_root.leaf,
2393 rcu_assign_pointer(net->ipv6.fib6_local_tbl->tb6_root.leaf,
2510 iter->w.leaf = NULL;
2522 iter->w.leaf = rcu_dereference_protected(
2523 iter->w.leaf->fib6_next,
2526 if (!iter->skip && iter->w.leaf)
2528 } while (iter->w.leaf);
2602 return iter->w.leaf;
2680 iter->w.leaf = NULL;