Lines Matching refs:ptr
30 const struct assoc_array_ptr *cursor, *ptr, *parent; in assoc_array_subtree_iterate() local
57 ptr = ACCESS_ONCE(node->slots[slot]); in assoc_array_subtree_iterate()
58 has_meta |= (unsigned long)ptr; in assoc_array_subtree_iterate()
59 if (ptr && assoc_array_ptr_is_leaf(ptr)) { in assoc_array_subtree_iterate()
67 ret = iterator(assoc_array_ptr_to_leaf(ptr), in assoc_array_subtree_iterate()
91 ptr = ACCESS_ONCE(node->slots[slot]); in assoc_array_subtree_iterate()
92 if (assoc_array_ptr_is_meta(ptr)) { in assoc_array_subtree_iterate()
93 cursor = ptr; in assoc_array_subtree_iterate()
188 struct assoc_array_ptr *cursor, *ptr; in assoc_array_walk() local
222 ptr = ACCESS_ONCE(node->slots[slot]); in assoc_array_walk()
225 slot, level, (unsigned long)ptr & 3); in assoc_array_walk()
227 if (!assoc_array_ptr_is_meta(ptr)) { in assoc_array_walk()
238 if (assoc_array_ptr_is_node(ptr)) { in assoc_array_walk()
242 cursor = ptr; in assoc_array_walk()
253 cursor = ptr; in assoc_array_walk()
324 const struct assoc_array_ptr *ptr; in assoc_array_find() local
339 ptr = ACCESS_ONCE(node->slots[slot]); in assoc_array_find()
340 if (ptr && assoc_array_ptr_is_leaf(ptr)) { in assoc_array_find()
345 leaf = assoc_array_ptr_to_leaf(ptr); in assoc_array_find()
398 struct assoc_array_ptr *ptr = node->slots[slot]; in assoc_array_destroy_subtree() local
399 if (!ptr) in assoc_array_destroy_subtree()
401 if (assoc_array_ptr_is_meta(ptr)) { in assoc_array_destroy_subtree()
403 cursor = ptr; in assoc_array_destroy_subtree()
409 ops->free_object(assoc_array_ptr_to_leaf(ptr)); in assoc_array_destroy_subtree()
480 edit->set[0].ptr = &edit->array->root; in assoc_array_insert_in_empty_tree()
497 struct assoc_array_ptr *ptr; in assoc_array_insert_into_terminal_node() local
521 ptr = node->slots[i]; in assoc_array_insert_into_terminal_node()
522 if (!ptr) { in assoc_array_insert_into_terminal_node()
526 if (assoc_array_ptr_is_leaf(ptr) && in assoc_array_insert_into_terminal_node()
527 ops->compare_object(assoc_array_ptr_to_leaf(ptr), in assoc_array_insert_into_terminal_node()
568 ptr = node->slots[i]; in assoc_array_insert_into_terminal_node()
569 if (assoc_array_ptr_is_meta(ptr)) { in assoc_array_insert_into_terminal_node()
575 assoc_array_ptr_to_leaf(ptr), level); in assoc_array_insert_into_terminal_node()
706 ptr = node->slots[i]; in assoc_array_insert_into_terminal_node()
707 BUG_ON(assoc_array_ptr_is_leaf(ptr)); in assoc_array_insert_into_terminal_node()
708 if (assoc_array_ptr_is_node(ptr)) { in assoc_array_insert_into_terminal_node()
709 side = assoc_array_ptr_to_node(ptr); in assoc_array_insert_into_terminal_node()
712 shortcut = assoc_array_ptr_to_shortcut(ptr); in assoc_array_insert_into_terminal_node()
718 ptr = node->back_pointer; in assoc_array_insert_into_terminal_node()
719 if (!ptr) in assoc_array_insert_into_terminal_node()
720 edit->set[0].ptr = &edit->array->root; in assoc_array_insert_into_terminal_node()
721 else if (assoc_array_ptr_is_node(ptr)) in assoc_array_insert_into_terminal_node()
722 edit->set[0].ptr = &assoc_array_ptr_to_node(ptr)->slots[node->parent_slot]; in assoc_array_insert_into_terminal_node()
724 edit->set[0].ptr = &assoc_array_ptr_to_shortcut(ptr)->next_node; in assoc_array_insert_into_terminal_node()
791 ptr = node->slots[i]; in assoc_array_insert_into_terminal_node()
792 base_seg = ops->get_object_key_chunk(assoc_array_ptr_to_leaf(ptr), in assoc_array_insert_into_terminal_node()
839 edit->set[0].ptr = &edit->array->root; in assoc_array_insert_mid_shortcut()
842 edit->set[0].ptr = &node->slots[shortcut->parent_slot]; in assoc_array_insert_mid_shortcut()
932 edit->set[1].ptr = &side->back_pointer; in assoc_array_insert_mid_shortcut()
945 edit->set[1].ptr = &side->back_pointer; in assoc_array_insert_mid_shortcut()
1101 struct assoc_array_ptr *ptr; in assoc_array_delete() local
1123 ptr = node->slots[slot]; in assoc_array_delete()
1124 if (ptr && in assoc_array_delete()
1125 assoc_array_ptr_is_leaf(ptr) && in assoc_array_delete()
1126 ops->compare_object(assoc_array_ptr_to_leaf(ptr), in assoc_array_delete()
1145 edit->set[0].ptr = &node->slots[slot]; in assoc_array_delete()
1153 edit->set[1].ptr = &array->root; in assoc_array_delete()
1173 struct assoc_array_ptr *ptr; in assoc_array_delete() local
1181 ptr = node->slots[i]; in assoc_array_delete()
1182 if (assoc_array_ptr_is_meta(ptr)) { in assoc_array_delete()
1198 ptr = parent->back_pointer; in assoc_array_delete()
1199 if (!ptr) in assoc_array_delete()
1201 if (assoc_array_ptr_is_shortcut(ptr)) { in assoc_array_delete()
1202 struct assoc_array_shortcut *s = assoc_array_ptr_to_shortcut(ptr); in assoc_array_delete()
1203 ptr = s->back_pointer; in assoc_array_delete()
1204 if (!ptr) in assoc_array_delete()
1208 grandparent = assoc_array_ptr_to_node(ptr); in assoc_array_delete()
1244 edit->set[1].ptr = &array->root; in assoc_array_delete()
1250 edit->set[1].ptr = &p->slots[node->parent_slot]; in assoc_array_delete()
1254 edit->set[1].ptr = &s->next_node; in assoc_array_delete()
1303 edit->set[1].ptr = &array->root; in assoc_array_clear()
1363 struct assoc_array_ptr *ptr; in assoc_array_apply_edit() local
1384 if (edit->set[i].ptr) in assoc_array_apply_edit()
1385 *edit->set[i].ptr = edit->set[i].to; in assoc_array_apply_edit()
1394 ptr = node->back_pointer; in assoc_array_apply_edit()
1395 if (!ptr) in assoc_array_apply_edit()
1397 if (assoc_array_ptr_is_shortcut(ptr)) { in assoc_array_apply_edit()
1398 shortcut = assoc_array_ptr_to_shortcut(ptr); in assoc_array_apply_edit()
1399 ptr = shortcut->back_pointer; in assoc_array_apply_edit()
1400 if (!ptr) in assoc_array_apply_edit()
1403 BUG_ON(!assoc_array_ptr_is_node(ptr)); in assoc_array_apply_edit()
1404 node = assoc_array_ptr_to_node(ptr); in assoc_array_apply_edit()
1425 struct assoc_array_ptr *ptr; in assoc_array_cancel_edit() local
1432 ptr = edit->new_meta[i]; in assoc_array_cancel_edit()
1433 if (ptr) { in assoc_array_cancel_edit()
1434 if (assoc_array_ptr_is_node(ptr)) in assoc_array_cancel_edit()
1435 kfree(assoc_array_ptr_to_node(ptr)); in assoc_array_cancel_edit()
1437 kfree(assoc_array_ptr_to_shortcut(ptr)); in assoc_array_cancel_edit()
1475 struct assoc_array_ptr *cursor, *ptr; in assoc_array_gc() local
1491 edit->set[0].ptr = &array->root; in assoc_array_gc()
1535 ptr = node->slots[slot]; in assoc_array_gc()
1536 if (!ptr) in assoc_array_gc()
1539 if (assoc_array_ptr_is_leaf(ptr)) { in assoc_array_gc()
1540 if (iterator(assoc_array_ptr_to_leaf(ptr), in assoc_array_gc()
1545 new_n->slots[slot] = ptr; in assoc_array_gc()
1550 cursor = ptr; in assoc_array_gc()
1562 ptr = new_n->slots[slot]; in assoc_array_gc()
1563 if (!ptr) in assoc_array_gc()
1565 else if (assoc_array_ptr_is_leaf(ptr)) in assoc_array_gc()
1576 ptr = new_n->slots[slot]; in assoc_array_gc()
1577 if (!ptr || assoc_array_ptr_is_leaf(ptr)) in assoc_array_gc()
1581 if (assoc_array_ptr_is_shortcut(ptr)) { in assoc_array_gc()
1582 s = assoc_array_ptr_to_shortcut(ptr); in assoc_array_gc()
1583 ptr = s->next_node; in assoc_array_gc()
1586 child = assoc_array_ptr_to_node(ptr); in assoc_array_gc()
1630 if ((ptr = new_n->slots[slot])) in assoc_array_gc()
1633 if (assoc_array_ptr_is_meta(ptr) && in assoc_array_gc()
1634 assoc_array_ptr_is_shortcut(ptr)) { in assoc_array_gc()
1636 new_s = assoc_array_ptr_to_shortcut(ptr); in assoc_array_gc()
1643 new_root = ptr; in assoc_array_gc()
1660 new_root = ptr; in assoc_array_gc()
1668 new_n->slots[slot] = ptr; in assoc_array_gc()
1676 ptr = new_n->back_pointer; in assoc_array_gc()
1677 if (!ptr) in assoc_array_gc()
1680 if (assoc_array_ptr_is_shortcut(ptr)) { in assoc_array_gc()
1681 new_s = assoc_array_ptr_to_shortcut(ptr); in assoc_array_gc()
1701 new_parent = ptr; in assoc_array_gc()
1706 ptr = node->back_pointer; in assoc_array_gc()
1707 if (assoc_array_ptr_is_shortcut(ptr)) { in assoc_array_gc()
1708 shortcut = assoc_array_ptr_to_shortcut(ptr); in assoc_array_gc()
1715 cursor = ptr; in assoc_array_gc()