Lines Matching defs:leaf
124 struct posix_msg_tree_node *leaf;
129 leaf = rb_entry(parent, struct posix_msg_tree_node, rb_node);
131 if (likely(leaf->priority == msg->m_type))
133 else if (msg->m_type < leaf->priority)
139 leaf = info->node_cache;
142 leaf = kmalloc(sizeof(*leaf), GFP_ATOMIC);
143 if (!leaf)
145 INIT_LIST_HEAD(&leaf->msg_list);
146 info->qsize += sizeof(*leaf);
148 leaf->priority = msg->m_type;
149 rb_link_node(&leaf->rb_node, parent, p);
150 rb_insert_color(&leaf->rb_node, &info->msg_tree);
154 list_add_tail(&msg->m_list, &leaf->msg_list);
161 struct posix_msg_tree_node *leaf;
184 leaf = rb_entry(parent, struct posix_msg_tree_node, rb_node);
185 if (unlikely(list_empty(&leaf->msg_list))) {
187 "empty leaf node but we haven't implemented "
188 "lazy leaf delete!\n");
189 rb_erase(&leaf->rb_node, &info->msg_tree);
191 info->qsize -= sizeof(*leaf);
192 kfree(leaf);
194 info->node_cache = leaf;
198 msg = list_first_entry(&leaf->msg_list,
201 if (list_empty(&leaf->msg_list)) {
202 rb_erase(&leaf->rb_node, &info->msg_tree);
204 info->qsize -= sizeof(*leaf);
205 kfree(leaf);
207 info->node_cache = leaf;