Lines Matching defs:tnode

129 		DECLARE_FLEX_ARRAY(struct key_vector __rcu *, tnode);
133 struct tnode {
142 #define TNODE_SIZE(n) offsetof(struct tnode, kv[0].tnode[n])
188 static inline struct tnode *tn_info(struct key_vector *kv)
190 return container_of(kv, struct tnode, kv[0]);
195 #define get_child(tn, i) rtnl_dereference((tn)->tnode[i])
199 #define get_child_rcu(tn, i) rcu_dereference_rtnl((tn)->tnode[i])
249 * if n is an internal node - a 'tnode' here, the various parts of its key
310 struct tnode *n = container_of(head, struct tnode, rcu);
320 static struct tnode *tnode_alloc(int bits)
356 struct tnode *kv;
380 struct tnode *tnode;
385 tnode = tnode_alloc(bits);
386 if (!tnode)
389 pr_debug("AT %p s=%zu %zu\n", tnode, TNODE_SIZE(0),
393 tnode->full_children = 1;
395 tnode->empty_children = 1ul << bits;
397 tn = tnode->kv;
406 /* Check whether a tnode 'n' is "full", i.e. it is an internal node
443 rcu_assign_pointer(tn->tnode[i], n);
457 /* Either update the children of a tnode that
472 rcu_assign_pointer(tp->tnode[0], n);
498 tn = container_of(head, struct tnode, rcu)->kv;
572 /* drop the node in the old tnode free list */
693 /* scan the tnode looking for that one child that might still exist */
763 * All of those will be doubled in the resulting inflated tnode, so
859 /* track the tnode via the pointer from the parent instead of
1123 * Add a new tnode here
1124 * first tnode need some special handling
1511 struct key_vector __rcu **cptr = n->tnode;
1564 cptr = &pn->tnode[cindex];
1836 /* if we are at the limit for keys just return NULL for the tnode */
1862 /* drop emptied tnode */
2449 struct key_vector *tnode;
2457 struct key_vector *pn = iter->tnode;
2461 iter->tnode, iter->index, iter->depth);
2471 iter->tnode = pn;
2475 iter->tnode = n;
2491 iter->tnode = pn;
2506 n = rcu_dereference(pn->tnode[0]);
2511 iter->tnode = n;
2515 iter->tnode = pn;
2643 " %zd bytes, size of tnode: %zd bytes.\n",
2850 struct key_vector *tnode;
2858 struct key_vector *l, **tp = &iter->tnode;
2904 iter->tnode = t->kv;
2925 l = leaf_walk_rcu(&iter->tnode, key);