Lines Matching defs:leaf

247 		rcu_assign_pointer(table->tb6_root.leaf,
464 err = fib6_rt_dump(w->leaf, w->args);
465 w->leaf = NULL;
527 w->leaf = rt;
548 w->leaf = NULL;
765 struct fib6_info *leaf = rcu_dereference_protected(fn->leaf,
767 key = (struct rt6key *)((u8 *)leaf + offset);
793 RCU_INIT_POINTER(fn->leaf, NULL);
794 fib6_info_release(leaf);
797 rcu_access_pointer(fn->leaf) ==
799 RCU_INIT_POINTER(fn->leaf, NULL);
839 * Create new leaf node without children.
880 * (new leaf node)[ln] (old node)[fn]
905 in->leaf = fn->leaf;
906 fib6_info_hold(rcu_dereference_protected(in->leaf,
930 * (new leaf node)[ln]
1050 struct fib6_info *leaf = rcu_dereference_protected(fn->leaf,
1053 if (!(fn->fn_flags & RTN_RTINFO) && leaf == rt) {
1057 rcu_assign_pointer(fn->leaf, new_leaf);
1077 struct fib6_info *leaf = rcu_dereference_protected(fn->leaf,
1095 ins = &fn->leaf;
1097 for (iter = leaf; iter;
1174 if (ins == &fn->leaf)
1183 sibling = leaf;
1226 (notify_sibling_rt || ins == &fn->leaf)) {
1279 if (!info->skip_notify_kernel && ins == &fn->leaf) {
1431 * sn[new leaf node]
1440 rcu_assign_pointer(sfn->leaf,
1444 /* Now add the first leaf node to new subtree */
1476 if (!rcu_access_pointer(fn->leaf)) {
1479 rcu_assign_pointer(fn->leaf,
1483 rcu_assign_pointer(fn->leaf, rt);
1506 * If fib6_add_1 has cleared the old leaf pointer in the
1507 * super-tree leaf node we have to find a new one for it.
1511 rcu_dereference_protected(pn->leaf,
1515 RCU_INIT_POINTER(pn->leaf, NULL);
1525 rcu_assign_pointer(pn->leaf, pn_leaf);
1536 /* fn->leaf could be NULL and fib6_repair_tree() needs to be called if:
1546 !rcu_access_pointer(fn->leaf))))
1595 struct fib6_info *leaf = rcu_dereference(fn->leaf);
1598 if (!leaf)
1601 key = (struct rt6key *) ((u8 *)leaf + args->offset);
1678 struct fib6_info *leaf = rcu_dereference(fn->leaf);
1682 if (!leaf) {
1689 key = (struct rt6key *)((u8 *)leaf + offset);
1773 return rcu_dereference_protected(child_left->leaf,
1776 return rcu_dereference_protected(child_right->leaf,
1800 /* Set fn->leaf to null_entry for root node. */
1802 rcu_assign_pointer(fn->leaf, net->ipv6.fib6_null_entry);
1817 struct fib6_info *fn_leaf = rcu_dereference_protected(fn->leaf,
1819 struct fib6_info *pn_leaf = rcu_dereference_protected(pn->leaf,
1855 rcu_assign_pointer(fn->leaf, new_fn_leaf);
1912 RCU_INIT_POINTER(pn->leaf, NULL);
1921 struct fib6_info *leaf, *replace_rt = NULL;
1932 leaf = rcu_dereference_protected(fn->leaf,
1934 if (leaf == rt && !rt->fib6_nsiblings) {
1961 if (rt->fib6_metric == leaf->fib6_metric &&
1962 rt6_qualify_for_ecmp(leaf))
1975 if (w->state == FWS_C && w->leaf == rt) {
1977 w->leaf = rcu_dereference_protected(rt->fib6_next,
1979 if (!w->leaf)
1989 if (!rcu_access_pointer(fn->leaf)) {
2033 * Walk the leaf entries looking for ourself
2036 for (rtp = &fn->leaf; *rtp; rtp = rtp_next) {
2115 w->leaf = rcu_dereference_protected(fn->leaf, 1);
2118 if (w->leaf && fn->fn_flags & RTN_RTINFO) {
2156 w->leaf = rcu_dereference_protected(w->node->leaf, 1);
2196 w->leaf = NULL;
2203 w->leaf = rt;
2224 w->leaf = rt;
2434 rcu_assign_pointer(net->ipv6.fib6_main_tbl->tb6_root.leaf,
2447 rcu_assign_pointer(net->ipv6.fib6_local_tbl->tb6_root.leaf,
2563 iter->w.leaf = NULL;
2575 iter->w.leaf = rcu_dereference_protected(
2576 iter->w.leaf->fib6_next,
2579 if (!iter->skip && iter->w.leaf)
2581 } while (iter->w.leaf);
2655 return iter->w.leaf;
2733 iter->w.leaf = NULL;