Lines Matching defs:leaf
244 rcu_assign_pointer(table->tb6_root.leaf,
460 err = fib6_rt_dump(w->leaf, w->args);
461 w->leaf = NULL;
523 w->leaf = rt;
544 w->leaf = NULL;
760 struct fib6_info *leaf = rcu_dereference_protected(fn->leaf,
762 key = (struct rt6key *)((u8 *)leaf + offset);
788 RCU_INIT_POINTER(fn->leaf, NULL);
789 fib6_info_release(leaf);
792 rcu_access_pointer(fn->leaf) ==
794 RCU_INIT_POINTER(fn->leaf, NULL);
834 * Create new leaf node without children.
875 * (new leaf node)[ln] (old node)[fn]
900 in->leaf = fn->leaf;
901 fib6_info_hold(rcu_dereference_protected(in->leaf,
925 * (new leaf node)[ln]
1049 struct fib6_info *leaf = rcu_dereference_protected(fn->leaf,
1052 if (!(fn->fn_flags & RTN_RTINFO) && leaf == rt) {
1056 rcu_assign_pointer(fn->leaf, new_leaf);
1073 struct fib6_info *leaf = rcu_dereference_protected(fn->leaf,
1091 ins = &fn->leaf;
1093 for (iter = leaf; iter;
1167 if (ins == &fn->leaf)
1176 sibling = leaf;
1219 (notify_sibling_rt || ins == &fn->leaf)) {
1272 if (!info->skip_notify_kernel && ins == &fn->leaf) {
1421 * sn[new leaf node]
1430 rcu_assign_pointer(sfn->leaf,
1434 /* Now add the first leaf node to new subtree */
1466 if (!rcu_access_pointer(fn->leaf)) {
1469 rcu_assign_pointer(fn->leaf,
1473 rcu_assign_pointer(fn->leaf, rt);
1492 * If fib6_add_1 has cleared the old leaf pointer in the
1493 * super-tree leaf node we have to find a new one for it.
1497 rcu_dereference_protected(pn->leaf,
1501 RCU_INIT_POINTER(pn->leaf, NULL);
1511 rcu_assign_pointer(pn->leaf, pn_leaf);
1522 /* fn->leaf could be NULL and fib6_repair_tree() needs to be called if:
1532 !rcu_access_pointer(fn->leaf))))
1581 struct fib6_info *leaf = rcu_dereference(fn->leaf);
1584 if (!leaf)
1587 key = (struct rt6key *) ((u8 *)leaf + args->offset);
1664 struct fib6_info *leaf = rcu_dereference(fn->leaf);
1668 if (!leaf) {
1675 key = (struct rt6key *)((u8 *)leaf + offset);
1759 return rcu_dereference_protected(child_left->leaf,
1762 return rcu_dereference_protected(child_right->leaf,
1786 /* Set fn->leaf to null_entry for root node. */
1788 rcu_assign_pointer(fn->leaf, net->ipv6.fib6_null_entry);
1803 struct fib6_info *fn_leaf = rcu_dereference_protected(fn->leaf,
1805 struct fib6_info *pn_leaf = rcu_dereference_protected(pn->leaf,
1841 rcu_assign_pointer(fn->leaf, new_fn_leaf);
1895 RCU_INIT_POINTER(pn->leaf, NULL);
1904 struct fib6_info *leaf, *replace_rt = NULL;
1917 leaf = rcu_dereference_protected(fn->leaf,
1919 if (leaf == rt && !rt->fib6_nsiblings) {
1946 if (rt->fib6_metric == leaf->fib6_metric &&
1947 rt6_qualify_for_ecmp(leaf))
1960 if (w->state == FWS_C && w->leaf == rt) {
1962 w->leaf = rcu_dereference_protected(rt->fib6_next,
1964 if (!w->leaf)
1974 if (!rcu_access_pointer(fn->leaf)) {
2018 * Walk the leaf entries looking for ourself
2021 for (rtp = &fn->leaf; *rtp; rtp = rtp_next) {
2100 w->leaf = rcu_dereference_protected(fn->leaf, 1);
2103 if (w->leaf && fn->fn_flags & RTN_RTINFO) {
2141 w->leaf = rcu_dereference_protected(w->node->leaf, 1);
2181 w->leaf = NULL;
2188 w->leaf = rt;
2209 w->leaf = rt;
2380 rcu_assign_pointer(net->ipv6.fib6_main_tbl->tb6_root.leaf,
2392 rcu_assign_pointer(net->ipv6.fib6_local_tbl->tb6_root.leaf,
2509 iter->w.leaf = NULL;
2521 iter->w.leaf = rcu_dereference_protected(
2522 iter->w.leaf->fib6_next,
2525 if (!iter->skip && iter->w.leaf)
2527 } while (iter->w.leaf);
2601 return iter->w.leaf;
2679 iter->w.leaf = NULL;