Lines Matching defs:leaf
194 struct posix_msg_tree_node *leaf;
200 leaf = rb_entry(parent, struct posix_msg_tree_node, rb_node);
202 if (likely(leaf->priority == msg->m_type))
204 else if (msg->m_type < leaf->priority) {
211 leaf = info->node_cache;
214 leaf = kmalloc(sizeof(*leaf), GFP_ATOMIC);
215 if (!leaf)
217 INIT_LIST_HEAD(&leaf->msg_list);
219 leaf->priority = msg->m_type;
222 info->msg_tree_rightmost = &leaf->rb_node;
224 rb_link_node(&leaf->rb_node, parent, p);
225 rb_insert_color(&leaf->rb_node, &info->msg_tree);
229 list_add_tail(&msg->m_list, &leaf->msg_list);
233 static inline void msg_tree_erase(struct posix_msg_tree_node *leaf,
236 struct rb_node *node = &leaf->rb_node;
243 kfree(leaf);
245 info->node_cache = leaf;
251 struct posix_msg_tree_node *leaf;
270 leaf = rb_entry(parent, struct posix_msg_tree_node, rb_node);
271 if (unlikely(list_empty(&leaf->msg_list))) {
273 "empty leaf node but we haven't implemented "
274 "lazy leaf delete!\n");
275 msg_tree_erase(leaf, info);
278 msg = list_first_entry(&leaf->msg_list,
281 if (list_empty(&leaf->msg_list)) {
282 msg_tree_erase(leaf, info);