Lines Matching refs:shortcut
29 const struct assoc_array_shortcut *shortcut; in assoc_array_subtree_iterate() local
40 shortcut = assoc_array_ptr_to_shortcut(cursor); in assoc_array_subtree_iterate()
42 cursor = ACCESS_ONCE(shortcut->next_node); in assoc_array_subtree_iterate()
107 shortcut = assoc_array_ptr_to_shortcut(parent); in assoc_array_subtree_iterate()
110 parent = ACCESS_ONCE(shortcut->back_pointer); in assoc_array_subtree_iterate()
111 slot = shortcut->parent_slot; in assoc_array_subtree_iterate()
170 struct assoc_array_shortcut *shortcut; member
187 struct assoc_array_shortcut *shortcut; in assoc_array_walk() local
256 shortcut = assoc_array_ptr_to_shortcut(cursor); in assoc_array_walk()
258 pr_devel("shortcut to %d\n", shortcut->skip_to_level); in assoc_array_walk()
260 BUG_ON(sc_level > shortcut->skip_to_level); in assoc_array_walk()
270 sc_segments = shortcut->index_key[sc_level >> ASSOC_ARRAY_KEY_CHUNK_SHIFT]; in assoc_array_walk()
273 if (round_up(sc_level, ASSOC_ARRAY_KEY_CHUNK_SIZE) > shortcut->skip_to_level) { in assoc_array_walk()
275 int shift = shortcut->skip_to_level & ASSOC_ARRAY_KEY_CHUNK_MASK; in assoc_array_walk()
277 next_sc_level = shortcut->skip_to_level; in assoc_array_walk()
285 result->wrong_shortcut.shortcut = shortcut; in assoc_array_walk()
294 } while (sc_level < shortcut->skip_to_level); in assoc_array_walk()
297 cursor = ACCESS_ONCE(shortcut->next_node); in assoc_array_walk()
363 struct assoc_array_shortcut *shortcut; in assoc_array_destroy_subtree() local
381 shortcut = assoc_array_ptr_to_shortcut(cursor); in assoc_array_destroy_subtree()
382 BUG_ON(shortcut->back_pointer != parent); in assoc_array_destroy_subtree()
383 BUG_ON(slot != -1 && shortcut->parent_slot != slot); in assoc_array_destroy_subtree()
385 cursor = shortcut->next_node; in assoc_array_destroy_subtree()
424 shortcut = assoc_array_ptr_to_shortcut(parent); in assoc_array_destroy_subtree()
425 BUG_ON(shortcut->next_node != cursor); in assoc_array_destroy_subtree()
427 parent = shortcut->back_pointer; in assoc_array_destroy_subtree()
428 slot = shortcut->parent_slot; in assoc_array_destroy_subtree()
430 kfree(shortcut); in assoc_array_destroy_subtree()
496 struct assoc_array_shortcut *shortcut, *new_s0; in assoc_array_insert_into_terminal_node() local
703 shortcut = assoc_array_ptr_to_shortcut(ptr); in assoc_array_insert_into_terminal_node()
704 edit->set_backpointers[i] = &shortcut->back_pointer; in assoc_array_insert_into_terminal_node()
829 struct assoc_array_shortcut *shortcut, *new_s0, *new_s1; in assoc_array_insert_mid_shortcut() local
836 shortcut = result->wrong_shortcut.shortcut; in assoc_array_insert_mid_shortcut()
856 if (!shortcut->back_pointer) { in assoc_array_insert_mid_shortcut()
858 } else if (assoc_array_ptr_is_node(shortcut->back_pointer)) { in assoc_array_insert_mid_shortcut()
859 node = assoc_array_ptr_to_node(shortcut->back_pointer); in assoc_array_insert_mid_shortcut()
860 edit->set[0].ptr = &node->slots[shortcut->parent_slot]; in assoc_array_insert_mid_shortcut()
865 edit->excised_meta[0] = assoc_array_shortcut_to_ptr(shortcut); in assoc_array_insert_mid_shortcut()
890 new_s0->back_pointer = shortcut->back_pointer; in assoc_array_insert_mid_shortcut()
891 new_s0->parent_slot = shortcut->parent_slot; in assoc_array_insert_mid_shortcut()
898 memcpy(new_s0->index_key, shortcut->index_key, in assoc_array_insert_mid_shortcut()
907 new_n0->back_pointer = shortcut->back_pointer; in assoc_array_insert_mid_shortcut()
908 new_n0->parent_slot = shortcut->parent_slot; in assoc_array_insert_mid_shortcut()
911 side = assoc_array_ptr_to_node(shortcut->next_node); in assoc_array_insert_mid_shortcut()
929 if (level < shortcut->skip_to_level) { in assoc_array_insert_mid_shortcut()
930 pr_devel("post-shortcut %d...%d\n", level, shortcut->skip_to_level); in assoc_array_insert_mid_shortcut()
931 keylen = round_up(shortcut->skip_to_level, ASSOC_ARRAY_KEY_CHUNK_SIZE); in assoc_array_insert_mid_shortcut()
942 new_s1->next_node = shortcut->next_node; in assoc_array_insert_mid_shortcut()
943 new_s1->skip_to_level = shortcut->skip_to_level; in assoc_array_insert_mid_shortcut()
947 memcpy(new_s1->index_key, shortcut->index_key, in assoc_array_insert_mid_shortcut()
960 new_n0->slots[sc_slot] = shortcut->next_node; in assoc_array_insert_mid_shortcut()
1379 struct assoc_array_shortcut *shortcut; in assoc_array_apply_edit() local
1416 shortcut = assoc_array_ptr_to_shortcut(ptr); in assoc_array_apply_edit()
1417 ptr = shortcut->back_pointer; in assoc_array_apply_edit()
1490 struct assoc_array_shortcut *shortcut, *new_s; in assoc_array_gc() local
1521 shortcut = assoc_array_ptr_to_shortcut(cursor); in assoc_array_gc()
1522 keylen = round_up(shortcut->skip_to_level, ASSOC_ARRAY_KEY_CHUNK_SIZE); in assoc_array_gc()
1528 pr_devel("dup shortcut %p -> %p\n", shortcut, new_s); in assoc_array_gc()
1529 memcpy(new_s, shortcut, (sizeof(struct assoc_array_shortcut) + in assoc_array_gc()
1532 new_s->parent_slot = shortcut->parent_slot; in assoc_array_gc()
1535 cursor = shortcut->next_node; in assoc_array_gc()
1726 shortcut = assoc_array_ptr_to_shortcut(ptr); in assoc_array_gc()
1727 slot = shortcut->parent_slot; in assoc_array_gc()
1728 cursor = shortcut->back_pointer; in assoc_array_gc()