Lines Matching refs:node

161 	struct xfs_iext_node	*node = ifp->if_data;  in xfs_iext_find_first_leaf()  local
168 node = node->ptrs[0]; in xfs_iext_find_first_leaf()
169 ASSERT(node); in xfs_iext_find_first_leaf()
172 return node; in xfs_iext_find_first_leaf()
179 struct xfs_iext_node *node = ifp->if_data; in xfs_iext_find_last_leaf() local
187 if (!node->ptrs[i]) in xfs_iext_find_last_leaf()
189 node = node->ptrs[i - 1]; in xfs_iext_find_last_leaf()
190 ASSERT(node); in xfs_iext_find_last_leaf()
193 return node; in xfs_iext_find_last_leaf()
277 struct xfs_iext_node *node, in xfs_iext_key_cmp() argument
281 if (node->keys[n] > offset) in xfs_iext_key_cmp()
283 if (node->keys[n] < offset) in xfs_iext_key_cmp()
309 struct xfs_iext_node *node = ifp->if_data; in xfs_iext_find_level() local
317 if (xfs_iext_key_cmp(node, i, offset) > 0) in xfs_iext_find_level()
320 node = node->ptrs[i - 1]; in xfs_iext_find_level()
321 if (!node) in xfs_iext_find_level()
325 return node; in xfs_iext_find_level()
330 struct xfs_iext_node *node, in xfs_iext_node_pos() argument
336 if (xfs_iext_key_cmp(node, i, offset) > 0) in xfs_iext_node_pos()
345 struct xfs_iext_node *node, in xfs_iext_node_insert_pos() argument
351 if (xfs_iext_key_cmp(node, i, offset) > 0) in xfs_iext_node_insert_pos()
360 struct xfs_iext_node *node, in xfs_iext_node_nr_entries() argument
366 if (node->keys[i] == XFS_IEXT_KEY_INVALID) in xfs_iext_node_nr_entries()
408 struct xfs_iext_node *node = xfs_iext_alloc_node(NODE_SIZE); in xfs_iext_grow() local
414 node->keys[0] = xfs_iext_leaf_key(prev, 0); in xfs_iext_grow()
415 node->ptrs[0] = prev; in xfs_iext_grow()
421 node->keys[0] = prev->keys[0]; in xfs_iext_grow()
422 node->ptrs[0] = prev; in xfs_iext_grow()
426 node->keys[i] = XFS_IEXT_KEY_INVALID; in xfs_iext_grow()
428 ifp->if_data = node; in xfs_iext_grow()
440 struct xfs_iext_node *node = ifp->if_data; in xfs_iext_update_node() local
445 if (i > 0 && xfs_iext_key_cmp(node, i, old_offset) > 0) in xfs_iext_update_node()
447 if (node->keys[i] == old_offset) in xfs_iext_update_node()
448 node->keys[i] = new_offset; in xfs_iext_update_node()
450 node = node->ptrs[i - 1]; in xfs_iext_update_node()
451 ASSERT(node); in xfs_iext_update_node()
454 ASSERT(node == ptr); in xfs_iext_update_node()
463 struct xfs_iext_node *node = *nodep; in xfs_iext_split_node() local
479 new->keys[i] = node->keys[nr_keep + i]; in xfs_iext_split_node()
480 new->ptrs[i] = node->ptrs[nr_keep + i]; in xfs_iext_split_node()
482 node->keys[nr_keep + i] = XFS_IEXT_KEY_INVALID; in xfs_iext_split_node()
483 node->ptrs[nr_keep + i] = NULL; in xfs_iext_split_node()
506 struct xfs_iext_node *node, *new; in xfs_iext_insert_node() local
514 node = xfs_iext_find_level(ifp, offset, level); in xfs_iext_insert_node()
515 pos = xfs_iext_node_insert_pos(node, offset); in xfs_iext_insert_node()
516 nr_entries = xfs_iext_node_nr_entries(node, pos); in xfs_iext_insert_node()
518 ASSERT(pos >= nr_entries || xfs_iext_key_cmp(node, pos, offset) != 0); in xfs_iext_insert_node()
522 new = xfs_iext_split_node(&node, &pos, &nr_entries); in xfs_iext_insert_node()
528 if (node != new && pos == 0 && nr_entries > 0) in xfs_iext_insert_node()
529 xfs_iext_update_node(ifp, node->keys[0], offset, level, node); in xfs_iext_insert_node()
532 node->keys[i] = node->keys[i - 1]; in xfs_iext_insert_node()
533 node->ptrs[i] = node->ptrs[i - 1]; in xfs_iext_insert_node()
535 node->keys[pos] = offset; in xfs_iext_insert_node()
536 node->ptrs[pos] = ptr; in xfs_iext_insert_node()
692 struct xfs_iext_node *node, in xfs_iext_rebalance_node() argument
701 return node; in xfs_iext_rebalance_node()
709 prev->keys[nr_prev + i] = node->keys[i]; in xfs_iext_rebalance_node()
710 prev->ptrs[nr_prev + i] = node->ptrs[i]; in xfs_iext_rebalance_node()
712 return node; in xfs_iext_rebalance_node()
727 node->keys[nr_entries + i] = next->keys[i]; in xfs_iext_rebalance_node()
728 node->ptrs[nr_entries + i] = next->ptrs[i]; in xfs_iext_rebalance_node()
745 struct xfs_iext_node *node, *parent; in xfs_iext_remove_node() local
749 node = xfs_iext_find_level(ifp, offset, level); in xfs_iext_remove_node()
750 pos = xfs_iext_node_pos(node, offset); in xfs_iext_remove_node()
752 ASSERT(node->ptrs[pos]); in xfs_iext_remove_node()
753 ASSERT(node->ptrs[pos] == victim); in xfs_iext_remove_node()
756 nr_entries = xfs_iext_node_nr_entries(node, pos) - 1; in xfs_iext_remove_node()
757 offset = node->keys[0]; in xfs_iext_remove_node()
759 node->keys[i] = node->keys[i + 1]; in xfs_iext_remove_node()
760 node->ptrs[i] = node->ptrs[i + 1]; in xfs_iext_remove_node()
762 node->keys[nr_entries] = XFS_IEXT_KEY_INVALID; in xfs_iext_remove_node()
763 node->ptrs[nr_entries] = NULL; in xfs_iext_remove_node()
766 xfs_iext_update_node(ifp, offset, node->keys[0], level, node); in xfs_iext_remove_node()
767 offset = node->keys[0]; in xfs_iext_remove_node()
784 ASSERT(parent->ptrs[pos] == node); in xfs_iext_remove_node()
786 node = xfs_iext_rebalance_node(parent, &pos, node, nr_entries); in xfs_iext_remove_node()
787 if (node) { in xfs_iext_remove_node()
788 victim = node; in xfs_iext_remove_node()
789 node = parent; in xfs_iext_remove_node()
797 ASSERT(node == ifp->if_data); in xfs_iext_remove_node()
798 ifp->if_data = node->ptrs[0]; in xfs_iext_remove_node()
800 kfree(node); in xfs_iext_remove_node()
1042 struct xfs_iext_node *node, in xfs_iext_destroy_node() argument
1049 if (node->keys[i] == XFS_IEXT_KEY_INVALID) in xfs_iext_destroy_node()
1051 xfs_iext_destroy_node(node->ptrs[i], level - 1); in xfs_iext_destroy_node()
1055 kfree(node); in xfs_iext_destroy_node()