Lines Matching refs:level
59 int level, /* level of the btree block */ in xfs_btree_check_lblock() argument
77 be16_to_cpu(block->bb_level) == level && in xfs_btree_check_lblock()
79 cur->bc_ops->get_maxrecs(cur, level) && in xfs_btree_check_lblock()
104 int level, /* level of the btree block */ in xfs_btree_check_sblock() argument
128 be16_to_cpu(block->bb_level) == level && in xfs_btree_check_sblock()
130 cur->bc_ops->get_maxrecs(cur, level) && in xfs_btree_check_sblock()
156 int level, /* level of the btree block */ in xfs_btree_check_block() argument
160 return xfs_btree_check_lblock(cur, block, level, bp); in xfs_btree_check_block()
162 return xfs_btree_check_sblock(cur, block, level, bp); in xfs_btree_check_block()
172 int level) /* btree block level */ in xfs_btree_check_lptr() argument
175 level > 0 && in xfs_btree_check_lptr()
189 int level) /* btree block level */ in xfs_btree_check_sptr() argument
194 level > 0 && in xfs_btree_check_sptr()
209 int level) /* btree block level */ in xfs_btree_check_ptr() argument
213 be64_to_cpu((&ptr->l)[index]), level); in xfs_btree_check_ptr()
216 be32_to_cpu((&ptr->s)[index]), level); in xfs_btree_check_ptr()
473 int level) in xfs_btree_ptr_offset() argument
476 cur->bc_ops->get_maxrecs(cur, level) * cur->bc_ops->key_len + in xfs_btree_ptr_offset()
515 int level = xfs_btree_get_level(block); in xfs_btree_ptr_addr() local
520 ((char *)block + xfs_btree_ptr_offset(cur, n, level)); in xfs_btree_ptr_addr()
546 int level, /* level in btree */ in xfs_btree_get_block() argument
550 (level == cur->bc_nlevels - 1)) { in xfs_btree_get_block()
555 *bpp = cur->bc_bufs[level]; in xfs_btree_get_block()
603 int level) /* level to check */ in xfs_btree_islastblock() argument
608 block = xfs_btree_get_block(cur, level, &bp); in xfs_btree_islastblock()
609 xfs_btree_check_block(cur, block, level, bp); in xfs_btree_islastblock()
623 int level) /* level to change */ in xfs_btree_firstrec() argument
631 block = xfs_btree_get_block(cur, level, &bp); in xfs_btree_firstrec()
632 xfs_btree_check_block(cur, block, level, bp); in xfs_btree_firstrec()
641 cur->bc_ptrs[level] = 1; in xfs_btree_firstrec()
652 int level) /* level to change */ in xfs_btree_lastrec() argument
660 block = xfs_btree_get_block(cur, level, &bp); in xfs_btree_lastrec()
661 xfs_btree_check_block(cur, block, level, bp); in xfs_btree_lastrec()
670 cur->bc_ptrs[level] = be16_to_cpu(block->bb_numrecs); in xfs_btree_lastrec()
1003 __u16 level, in xfs_btree_init_block_int() argument
1009 buf->bb_level = cpu_to_be16(level); in xfs_btree_init_block_int()
1042 __u16 level, in xfs_btree_init_block() argument
1048 magic, level, numrecs, owner, flags); in xfs_btree_init_block()
1055 int level, in xfs_btree_init_block_cur() argument
1072 xfs_btree_magic(cur), level, numrecs, in xfs_btree_init_block_cur()
1085 int level) in xfs_btree_is_lastrec() argument
1089 if (level > 0) in xfs_btree_is_lastrec()
1355 int level = xfs_btree_get_level(block); in xfs_btree_log_ptrs() local
1359 xfs_btree_ptr_offset(cur, first, level), in xfs_btree_log_ptrs()
1360 xfs_btree_ptr_offset(cur, last + 1, level) - 1); in xfs_btree_log_ptrs()
1449 int level, in xfs_btree_increment() argument
1459 XFS_BTREE_TRACE_ARGI(cur, level); in xfs_btree_increment()
1461 ASSERT(level < cur->bc_nlevels); in xfs_btree_increment()
1464 xfs_btree_readahead(cur, level, XFS_BTCUR_RIGHTRA); in xfs_btree_increment()
1467 block = xfs_btree_get_block(cur, level, &bp); in xfs_btree_increment()
1470 error = xfs_btree_check_block(cur, block, level, bp); in xfs_btree_increment()
1476 if (++cur->bc_ptrs[level] <= xfs_btree_get_numrecs(block)) in xfs_btree_increment()
1490 for (lev = level + 1; lev < cur->bc_nlevels; lev++) { in xfs_btree_increment()
1523 for (block = xfs_btree_get_block(cur, lev, &bp); lev > level; ) { in xfs_btree_increment()
1557 int level, in xfs_btree_decrement() argument
1567 XFS_BTREE_TRACE_ARGI(cur, level); in xfs_btree_decrement()
1569 ASSERT(level < cur->bc_nlevels); in xfs_btree_decrement()
1572 xfs_btree_readahead(cur, level, XFS_BTCUR_LEFTRA); in xfs_btree_decrement()
1575 if (--cur->bc_ptrs[level] > 0) in xfs_btree_decrement()
1579 block = xfs_btree_get_block(cur, level, &bp); in xfs_btree_decrement()
1582 error = xfs_btree_check_block(cur, block, level, bp); in xfs_btree_decrement()
1598 for (lev = level + 1; lev < cur->bc_nlevels; lev++) { in xfs_btree_decrement()
1622 for (block = xfs_btree_get_block(cur, lev, &bp); lev > level; ) { in xfs_btree_decrement()
1651 int level, /* level in the btree */ in xfs_btree_lookup_get_block() argument
1660 (level == cur->bc_nlevels - 1)) { in xfs_btree_lookup_get_block()
1671 bp = cur->bc_bufs[level]; in xfs_btree_lookup_get_block()
1681 xfs_btree_setbuf(cur, level, bp); in xfs_btree_lookup_get_block()
1693 int level, in xfs_lookup_get_search_key() argument
1698 if (level == 0) { in xfs_lookup_get_search_key()
1721 int level; /* level in the btree */ in xfs_btree_lookup() local
1743 for (level = cur->bc_nlevels - 1, diff = 1; level >= 0; level--) { in xfs_btree_lookup()
1745 error = xfs_btree_lookup_get_block(cur, level, pp, &block); in xfs_btree_lookup()
1766 ASSERT(level == 0 && cur->bc_nlevels == 1); in xfs_btree_lookup()
1785 kp = xfs_lookup_get_search_key(cur, level, in xfs_btree_lookup()
1808 if (level > 0) { in xfs_btree_lookup()
1818 error = xfs_btree_check_ptr(cur, pp, 0, level); in xfs_btree_lookup()
1822 cur->bc_ptrs[level] = keyno; in xfs_btree_lookup()
1874 int level) in xfs_btree_updkey() argument
1882 XFS_BTREE_TRACE_ARGIK(cur, level, keyp); in xfs_btree_updkey()
1884 ASSERT(!(cur->bc_flags & XFS_BTREE_ROOT_IN_INODE) || level >= 1); in xfs_btree_updkey()
1892 for (ptr = 1; ptr == 1 && level < cur->bc_nlevels; level++) { in xfs_btree_updkey()
1896 block = xfs_btree_get_block(cur, level, &bp); in xfs_btree_updkey()
1898 error = xfs_btree_check_block(cur, block, level, bp); in xfs_btree_updkey()
1904 ptr = cur->bc_ptrs[level]; in xfs_btree_updkey()
1983 int level, in xfs_btree_lshift() argument
2000 XFS_BTREE_TRACE_ARGI(cur, level); in xfs_btree_lshift()
2003 level == cur->bc_nlevels - 1) in xfs_btree_lshift()
2007 right = xfs_btree_get_block(cur, level, &rbp); in xfs_btree_lshift()
2010 error = xfs_btree_check_block(cur, right, level, rbp); in xfs_btree_lshift()
2024 if (cur->bc_ptrs[level] <= 1) in xfs_btree_lshift()
2034 if (lrecs == cur->bc_ops->get_maxrecs(cur, level)) in xfs_btree_lshift()
2054 if (level > 0) { in xfs_btree_lshift()
2065 error = xfs_btree_check_ptr(cur, rpp, 0, level); in xfs_btree_lshift()
2101 if (level > 0) { in xfs_btree_lshift()
2107 error = xfs_btree_check_ptr(cur, rpp, i + 1, level); in xfs_btree_lshift()
2138 error = xfs_btree_updkey(cur, rkp, level + 1); in xfs_btree_lshift()
2143 cur->bc_ptrs[level]--; in xfs_btree_lshift()
2166 int level, in xfs_btree_rshift() argument
2183 XFS_BTREE_TRACE_ARGI(cur, level); in xfs_btree_rshift()
2186 (level == cur->bc_nlevels - 1)) in xfs_btree_rshift()
2190 left = xfs_btree_get_block(cur, level, &lbp); in xfs_btree_rshift()
2193 error = xfs_btree_check_block(cur, left, level, lbp); in xfs_btree_rshift()
2208 if (cur->bc_ptrs[level] >= lrecs) in xfs_btree_rshift()
2218 if (rrecs == cur->bc_ops->get_maxrecs(cur, level)) in xfs_btree_rshift()
2228 if (level > 0) { in xfs_btree_rshift()
2241 error = xfs_btree_check_ptr(cur, rpp, i, level); in xfs_btree_rshift()
2251 error = xfs_btree_check_ptr(cur, lpp, 0, level); in xfs_btree_rshift()
2302 i = xfs_btree_lastrec(tcur, level); in xfs_btree_rshift()
2305 error = xfs_btree_increment(tcur, level, &i); in xfs_btree_rshift()
2309 error = xfs_btree_updkey(tcur, rkp, level + 1); in xfs_btree_rshift()
2342 int level, in __xfs_btree_split() argument
2366 XFS_BTREE_TRACE_ARGIPK(cur, level, *ptrp, key); in __xfs_btree_split()
2371 left = xfs_btree_get_block(cur, level, &lbp); in __xfs_btree_split()
2374 error = xfs_btree_check_block(cur, left, level, lbp); in __xfs_btree_split()
2404 if ((lrecs & 1) && cur->bc_ptrs[level] <= rrecs + 1) in __xfs_btree_split()
2415 if (level > 0) { in __xfs_btree_split()
2429 error = xfs_btree_check_ptr(cur, lpp, i, level); in __xfs_btree_split()
2492 if (cur->bc_ptrs[level] > lrecs + 1) { in __xfs_btree_split()
2493 xfs_btree_setbuf(cur, level, rbp); in __xfs_btree_split()
2494 cur->bc_ptrs[level] -= lrecs; in __xfs_btree_split()
2500 if (level + 1 < cur->bc_nlevels) { in __xfs_btree_split()
2504 (*curp)->bc_ptrs[level + 1]++; in __xfs_btree_split()
2522 int level; member
2556 args->result = __xfs_btree_split(args->cur, args->level, args->ptrp, in xfs_btree_split_worker()
2571 int level, in xfs_btree_split() argument
2581 return __xfs_btree_split(cur, level, ptrp, key, curp, stat); in xfs_btree_split()
2584 args.level = level; in xfs_btree_split()
2617 int level; /* btree level */ in xfs_btree_new_iroot() local
2628 level = cur->bc_nlevels - 1; in xfs_btree_new_iroot()
2663 cur->bc_ptrs[level + 1] = 1; in xfs_btree_new_iroot()
2672 error = xfs_btree_check_ptr(cur, pp, i, level); in xfs_btree_new_iroot()
2680 error = xfs_btree_check_ptr(cur, &nptr, 0, level); in xfs_btree_new_iroot()
2690 xfs_btree_setbuf(cur, level, cbp); in xfs_btree_new_iroot()
2840 int level, /* btree level */ in xfs_btree_make_block_unfull() argument
2853 level == cur->bc_nlevels - 1) { in xfs_btree_make_block_unfull()
2856 if (numrecs < cur->bc_ops->get_dmaxrecs(cur, level)) { in xfs_btree_make_block_unfull()
2874 error = xfs_btree_rshift(cur, level, stat); in xfs_btree_make_block_unfull()
2879 error = xfs_btree_lshift(cur, level, stat); in xfs_btree_make_block_unfull()
2884 *oindex = *index = cur->bc_ptrs[level]; in xfs_btree_make_block_unfull()
2894 error = xfs_btree_split(cur, level, nptr, &key, ncur, stat); in xfs_btree_make_block_unfull()
2899 *index = cur->bc_ptrs[level]; in xfs_btree_make_block_unfull()
2911 int level, /* level to insert record at */ in xfs_btree_insrec() argument
2932 XFS_BTREE_TRACE_ARGIPR(cur, level, *ptrp, recp); in xfs_btree_insrec()
2941 (level >= cur->bc_nlevels)) { in xfs_btree_insrec()
2950 ptr = cur->bc_ptrs[level]; in xfs_btree_insrec()
2965 block = xfs_btree_get_block(cur, level, &bp); in xfs_btree_insrec()
2969 error = xfs_btree_check_block(cur, block, level, bp); in xfs_btree_insrec()
2975 if (level == 0) { in xfs_btree_insrec()
2990 if (numrecs == cur->bc_ops->get_maxrecs(cur, level)) { in xfs_btree_insrec()
2991 error = xfs_btree_make_block_unfull(cur, level, numrecs, in xfs_btree_insrec()
3001 block = xfs_btree_get_block(cur, level, &bp); in xfs_btree_insrec()
3005 error = xfs_btree_check_block(cur, block, level, bp); in xfs_btree_insrec()
3016 if (level > 0) { in xfs_btree_insrec()
3026 error = xfs_btree_check_ptr(cur, pp, i, level); in xfs_btree_insrec()
3036 error = xfs_btree_check_ptr(cur, ptrp, 0, level); in xfs_btree_insrec()
3079 error = xfs_btree_updkey(cur, &key, level + 1); in xfs_btree_insrec()
3088 if (xfs_btree_is_lastrec(cur, block, level)) { in xfs_btree_insrec()
3126 int level; /* current level number in btree */ in xfs_btree_insert() local
3132 level = 0; in xfs_btree_insert()
3149 error = xfs_btree_insrec(pcur, level, &nptr, &rec, &ncur, &i); in xfs_btree_insert()
3157 level++; in xfs_btree_insert()
3209 int level; in xfs_btree_kill_iroot() local
3226 level = cur->bc_nlevels - 1; in xfs_btree_kill_iroot()
3227 if (level == 1) in xfs_btree_kill_iroot()
3237 cblock = xfs_btree_get_block(cur, level - 1, &cbp); in xfs_btree_kill_iroot()
3245 if (numrecs > cur->bc_ops->get_dmaxrecs(cur, level)) in xfs_btree_kill_iroot()
3257 index = numrecs - cur->bc_ops->get_maxrecs(cur, level); in xfs_btree_kill_iroot()
3277 error = xfs_btree_check_ptr(cur, cpp, i, level - 1); in xfs_btree_kill_iroot()
3289 cur->bc_bufs[level - 1] = NULL; in xfs_btree_kill_iroot()
3306 int level, in xfs_btree_kill_root() argument
3328 cur->bc_bufs[level] = NULL; in xfs_btree_kill_root()
3329 cur->bc_ra[level] = 0; in xfs_btree_kill_root()
3339 int level, in xfs_btree_dec_cursor() argument
3345 if (level > 0) { in xfs_btree_dec_cursor()
3346 error = xfs_btree_decrement(cur, level, &i); in xfs_btree_dec_cursor()
3365 int level, /* level removing record from */ in xfs_btree_delrec() argument
3390 XFS_BTREE_TRACE_ARGI(cur, level); in xfs_btree_delrec()
3395 ptr = cur->bc_ptrs[level]; in xfs_btree_delrec()
3403 block = xfs_btree_get_block(cur, level, &bp); in xfs_btree_delrec()
3407 error = xfs_btree_check_block(cur, block, level, bp); in xfs_btree_delrec()
3423 if (level > 0) { in xfs_btree_delrec()
3433 error = xfs_btree_check_ptr(cur, lpp, i, level); in xfs_btree_delrec()
3482 if (xfs_btree_is_lastrec(cur, block, level)) { in xfs_btree_delrec()
3492 if (level == cur->bc_nlevels - 1) { in xfs_btree_delrec()
3501 error = xfs_btree_dec_cursor(cur, level, stat); in xfs_btree_delrec()
3513 if (numrecs == 1 && level > 0) { in xfs_btree_delrec()
3520 error = xfs_btree_kill_root(cur, bp, level, pp); in xfs_btree_delrec()
3523 } else if (level > 0) { in xfs_btree_delrec()
3524 error = xfs_btree_dec_cursor(cur, level, stat); in xfs_btree_delrec()
3537 error = xfs_btree_updkey(cur, keyp, level + 1); in xfs_btree_delrec()
3546 if (numrecs >= cur->bc_ops->get_minrecs(cur, level)) { in xfs_btree_delrec()
3547 error = xfs_btree_dec_cursor(cur, level, stat); in xfs_btree_delrec()
3569 level == cur->bc_nlevels - 2) { in xfs_btree_delrec()
3572 error = xfs_btree_dec_cursor(cur, level, stat); in xfs_btree_delrec()
3599 i = xfs_btree_lastrec(tcur, level); in xfs_btree_delrec()
3602 error = xfs_btree_increment(tcur, level, &i); in xfs_btree_delrec()
3607 i = xfs_btree_lastrec(tcur, level); in xfs_btree_delrec()
3611 right = xfs_btree_get_block(tcur, level, &rbp); in xfs_btree_delrec()
3613 error = xfs_btree_check_block(tcur, right, level, rbp); in xfs_btree_delrec()
3626 cur->bc_ops->get_minrecs(tcur, level)) { in xfs_btree_delrec()
3627 error = xfs_btree_lshift(tcur, level, &i); in xfs_btree_delrec()
3632 cur->bc_ops->get_minrecs(tcur, level)); in xfs_btree_delrec()
3637 error = xfs_btree_dec_cursor(cur, level, stat); in xfs_btree_delrec()
3651 i = xfs_btree_firstrec(tcur, level); in xfs_btree_delrec()
3654 error = xfs_btree_decrement(tcur, level, &i); in xfs_btree_delrec()
3670 i = xfs_btree_firstrec(tcur, level); in xfs_btree_delrec()
3673 error = xfs_btree_decrement(tcur, level, &i); in xfs_btree_delrec()
3676 i = xfs_btree_firstrec(tcur, level); in xfs_btree_delrec()
3680 left = xfs_btree_get_block(tcur, level, &lbp); in xfs_btree_delrec()
3682 error = xfs_btree_check_block(cur, left, level, lbp); in xfs_btree_delrec()
3695 cur->bc_ops->get_minrecs(tcur, level)) { in xfs_btree_delrec()
3696 error = xfs_btree_rshift(tcur, level, &i); in xfs_btree_delrec()
3701 cur->bc_ops->get_minrecs(tcur, level)); in xfs_btree_delrec()
3704 if (level == 0) in xfs_btree_delrec()
3728 cur->bc_ops->get_maxrecs(cur, level)) { in xfs_btree_delrec()
3745 cur->bc_ops->get_maxrecs(cur, level)) { in xfs_btree_delrec()
3762 error = xfs_btree_dec_cursor(cur, level, stat); in xfs_btree_delrec()
3776 if (level > 0) { in xfs_btree_delrec()
3789 error = xfs_btree_check_ptr(cur, rpp, i, level); in xfs_btree_delrec()
3843 cur->bc_bufs[level] = lbp; in xfs_btree_delrec()
3844 cur->bc_ptrs[level] += lrecs; in xfs_btree_delrec()
3845 cur->bc_ra[level] = 0; in xfs_btree_delrec()
3852 (level + 1 < cur->bc_nlevels)) { in xfs_btree_delrec()
3853 error = xfs_btree_increment(cur, level + 1, &i); in xfs_btree_delrec()
3864 if (level > 0) in xfs_btree_delrec()
3865 cur->bc_ptrs[level]--; in xfs_btree_delrec()
3890 int level; in xfs_btree_delete() local
3901 for (level = 0, i = 2; i == 2; level++) { in xfs_btree_delete()
3902 error = xfs_btree_delrec(cur, level, &i); in xfs_btree_delete()
3908 for (level = 1; level < cur->bc_nlevels; level++) { in xfs_btree_delete()
3909 if (cur->bc_ptrs[level] == 0) { in xfs_btree_delete()
3910 error = xfs_btree_decrement(cur, level, &i); in xfs_btree_delete()
3994 int level, in xfs_btree_block_change_owner() argument
4003 xfs_btree_readahead(cur, level, XFS_BTCUR_RIGHTRA); in xfs_btree_block_change_owner()
4006 block = xfs_btree_get_block(cur, level, &bp); in xfs_btree_block_change_owner()
4028 ASSERT(level == cur->bc_nlevels - 1); in xfs_btree_block_change_owner()
4036 return xfs_btree_lookup_get_block(cur, level, &rptr, &block); in xfs_btree_block_change_owner()
4046 int level; in xfs_btree_change_owner() local
4053 for (level = cur->bc_nlevels - 1; level >= 0; level--) { in xfs_btree_change_owner()
4055 error = xfs_btree_lookup_get_block(cur, level, &lptr, &block); in xfs_btree_change_owner()
4060 if (level > 0) { in xfs_btree_change_owner()
4072 error = xfs_btree_block_change_owner(cur, level, in xfs_btree_change_owner()