Lines Matching refs:node
69 struct radix_tree_node *node; in radix_tree_lookup() local
74 node = root->rnode; in radix_tree_lookup()
78 while (height && node) in radix_tree_lookup()
79 node = node->slots[radix_pos(index, height--)]; in radix_tree_lookup()
80 if (node) in radix_tree_lookup()
81 item = node->slots[radix_pos(index, 0)]; in radix_tree_lookup()
91 struct radix_tree_node *node; in radix_tree_iter_find() local
96 node = root->rnode; in radix_tree_iter_find()
97 if (node == NULL) in radix_tree_iter_find()
109 *pppslot = node->slots + pos; in radix_tree_iter_find()
111 next = node->slots[pos]; in radix_tree_iter_find()
118 node = next; in radix_tree_iter_find()
130 struct radix_tree_node *node; in radix_tree_delete() local
136 node = root->rnode; in radix_tree_delete()
143 while (height && node) { in radix_tree_delete()
144 stack[height] = node; in radix_tree_delete()
145 node = node->slots[radix_pos(index, height--)]; in radix_tree_delete()
148 if (node) in radix_tree_delete()
149 item = node->slots[idx]; in radix_tree_delete()
155 node->slots[idx] = NULL; in radix_tree_delete()
156 node->count--; in radix_tree_delete()
157 if (node->count > 0) in radix_tree_delete()
159 free(node, M_RADIX); in radix_tree_delete()
160 if (node == root->rnode) { in radix_tree_delete()
166 node = stack[height]; in radix_tree_delete()
183 struct radix_tree_node *node; in radix_tree_insert() local
193 node = root->rnode; in radix_tree_insert()
196 if (node == NULL) { in radix_tree_insert()
197 node = malloc(sizeof(*node), M_RADIX, root->gfp_mask | M_ZERO); in radix_tree_insert()
198 if (node == NULL) in radix_tree_insert()
200 root->rnode = node; in radix_tree_insert()
216 if (node->count != 0) { in radix_tree_insert()
217 node = malloc(sizeof(*node), M_RADIX, root->gfp_mask | M_ZERO); in radix_tree_insert()
218 if (node == NULL) { in radix_tree_insert()
228 node->slots[0] = root->rnode; in radix_tree_insert()
229 node->count++; in radix_tree_insert()
230 root->rnode = node; in radix_tree_insert()
241 if (node->slots[idx] == NULL) in radix_tree_insert()
243 node = node->slots[idx]; in radix_tree_insert()
248 temp[idx] = malloc(sizeof(*node), M_RADIX, in radix_tree_insert()
261 node->slots[idx] = temp[height - 1]; in radix_tree_insert()
262 node->count++; in radix_tree_insert()
263 node = node->slots[idx]; in radix_tree_insert()
270 if (node->slots[idx]) in radix_tree_insert()
272 node->slots[idx] = item; in radix_tree_insert()
273 node->count++; in radix_tree_insert()
281 struct radix_tree_node *node; in radix_tree_store() local
297 node = root->rnode; in radix_tree_store()
300 if (node == NULL) { in radix_tree_store()
301 node = malloc(sizeof(*node), M_RADIX, root->gfp_mask | M_ZERO); in radix_tree_store()
302 if (node == NULL) in radix_tree_store()
304 root->rnode = node; in radix_tree_store()
320 if (node->count != 0) { in radix_tree_store()
321 node = malloc(sizeof(*node), M_RADIX, root->gfp_mask | M_ZERO); in radix_tree_store()
322 if (node == NULL) { in radix_tree_store()
332 node->slots[0] = root->rnode; in radix_tree_store()
333 node->count++; in radix_tree_store()
334 root->rnode = node; in radix_tree_store()
345 if (node->slots[idx] == NULL) in radix_tree_store()
347 node = node->slots[idx]; in radix_tree_store()
352 temp[idx] = malloc(sizeof(*node), M_RADIX, in radix_tree_store()
365 node->slots[idx] = temp[height - 1]; in radix_tree_store()
366 node->count++; in radix_tree_store()
367 node = node->slots[idx]; in radix_tree_store()
375 pitem = node->slots[idx]; in radix_tree_store()
376 node->slots[idx] = *ppitem; in radix_tree_store()
380 node->count++; in radix_tree_store()