Lines Matching refs:level
29 int level, in __xchk_btree_process_error() argument
50 trace_xchk_ifork_btree_op_error(sc, cur, level, in __xchk_btree_process_error()
53 trace_xchk_btree_op_error(sc, cur, level, in __xchk_btree_process_error()
64 int level, in xchk_btree_process_error() argument
67 return __xchk_btree_process_error(sc, cur, level, error, in xchk_btree_process_error()
75 int level, in xchk_btree_xref_process_error() argument
78 return __xchk_btree_process_error(sc, cur, level, error, in xchk_btree_xref_process_error()
87 int level, in __xchk_btree_set_corrupt() argument
94 trace_xchk_ifork_btree_error(sc, cur, level, in __xchk_btree_set_corrupt()
97 trace_xchk_btree_error(sc, cur, level, in __xchk_btree_set_corrupt()
105 int level) in xchk_btree_set_corrupt() argument
107 __xchk_btree_set_corrupt(sc, cur, level, XFS_SCRUB_OFLAG_CORRUPT, in xchk_btree_set_corrupt()
115 int level) in xchk_btree_xref_set_corrupt() argument
117 __xchk_btree_set_corrupt(sc, cur, level, XFS_SCRUB_OFLAG_XCORRUPT, in xchk_btree_xref_set_corrupt()
176 int level) in xchk_btree_key() argument
185 block = xfs_btree_get_block(cur, level, &bp); in xchk_btree_key()
186 key = xfs_btree_key_addr(cur, cur->bc_levels[level].ptr, block); in xchk_btree_key()
188 trace_xchk_btree_key(bs->sc, cur, level); in xchk_btree_key()
191 if (cur->bc_levels[level].ptr > 1 && in xchk_btree_key()
192 !cur->bc_ops->keys_inorder(cur, &bs->lastkey[level - 1], key)) in xchk_btree_key()
193 xchk_btree_set_corrupt(bs->sc, cur, level); in xchk_btree_key()
194 memcpy(&bs->lastkey[level - 1], key, cur->bc_ops->key_len); in xchk_btree_key()
196 if (level + 1 >= cur->bc_nlevels) in xchk_btree_key()
200 keyblock = xfs_btree_get_block(cur, level + 1, &bp); in xchk_btree_key()
201 keyp = xfs_btree_key_addr(cur, cur->bc_levels[level + 1].ptr, keyblock); in xchk_btree_key()
203 xchk_btree_set_corrupt(bs->sc, cur, level); in xchk_btree_key()
209 key = xfs_btree_high_key_addr(cur, cur->bc_levels[level].ptr, block); in xchk_btree_key()
210 keyp = xfs_btree_high_key_addr(cur, cur->bc_levels[level + 1].ptr, in xchk_btree_key()
213 xchk_btree_set_corrupt(bs->sc, cur, level); in xchk_btree_key()
223 int level, in xchk_btree_ptr_ok() argument
230 level == bs->cur->bc_nlevels) in xchk_btree_ptr_ok()
235 res = xfs_btree_check_lptr(bs->cur, be64_to_cpu(ptr->l), level); in xchk_btree_ptr_ok()
237 res = xfs_btree_check_sptr(bs->cur, be32_to_cpu(ptr->s), level); in xchk_btree_ptr_ok()
239 xchk_btree_set_corrupt(bs->sc, bs->cur, level); in xchk_btree_ptr_ok()
248 int level, in xchk_btree_block_check_sibling() argument
261 if (!xchk_btree_process_error(bs->sc, cur, level + 1, &error) || in xchk_btree_block_check_sibling()
271 error = xfs_btree_increment(ncur, level + 1, &success); in xchk_btree_block_check_sibling()
273 error = xfs_btree_decrement(ncur, level + 1, &success); in xchk_btree_block_check_sibling()
275 xchk_btree_set_corrupt(bs->sc, cur, level); in xchk_btree_block_check_sibling()
282 error = xfs_btree_increment(ncur, level + 1, &success); in xchk_btree_block_check_sibling()
284 error = xfs_btree_decrement(ncur, level + 1, &success); in xchk_btree_block_check_sibling()
285 if (!xchk_btree_process_error(bs->sc, cur, level + 1, &error)) in xchk_btree_block_check_sibling()
288 xchk_btree_set_corrupt(bs->sc, cur, level + 1); in xchk_btree_block_check_sibling()
293 pblock = xfs_btree_get_block(ncur, level + 1, &pbp); in xchk_btree_block_check_sibling()
294 pp = xfs_btree_ptr_addr(ncur, ncur->bc_levels[level + 1].ptr, pblock); in xchk_btree_block_check_sibling()
295 if (!xchk_btree_ptr_ok(bs, level + 1, pp)) in xchk_btree_block_check_sibling()
301 xchk_btree_set_corrupt(bs->sc, cur, level); in xchk_btree_block_check_sibling()
316 int level; in xchk_btree_block_check_siblings() local
321 level = xfs_btree_get_level(block); in xchk_btree_block_check_siblings()
324 if (level == cur->bc_nlevels - 1) { in xchk_btree_block_check_siblings()
327 xchk_btree_set_corrupt(bs->sc, cur, level); in xchk_btree_block_check_siblings()
336 error = xchk_btree_block_check_sibling(bs, level, -1, &leftsib); in xchk_btree_block_check_siblings()
339 error = xchk_btree_block_check_sibling(bs, level, 1, &rightsib); in xchk_btree_block_check_siblings()
349 int level; member
359 int level, in xchk_btree_check_block_owner() argument
379 level, &error)) in xchk_btree_check_block_owner()
407 int level, in xchk_btree_check_owner() argument
421 xchk_btree_set_corrupt(bs->sc, bs->cur, level); in xchk_btree_check_owner()
438 co->level = level; in xchk_btree_check_owner()
444 return xchk_btree_check_block_owner(bs, level, xfs_buf_daddr(bp)); in xchk_btree_check_owner()
478 int level, in xchk_btree_check_minrecs() argument
486 if (numrecs >= cur->bc_ops->get_minrecs(cur, level)) in xchk_btree_check_minrecs()
497 level == cur->bc_nlevels - 2) { in xchk_btree_check_minrecs()
507 xchk_btree_set_corrupt(bs->sc, cur, level); in xchk_btree_check_minrecs()
515 if (level < root_level) in xchk_btree_check_minrecs()
516 xchk_btree_set_corrupt(bs->sc, cur, level); in xchk_btree_check_minrecs()
526 int level, in xchk_btree_get_block() argument
537 error = xfs_btree_lookup_get_block(bs->cur, level, pp, pblock); in xchk_btree_get_block()
538 if (!xchk_btree_process_error(bs->sc, bs->cur, level, &error) || in xchk_btree_get_block()
542 xfs_btree_get_block(bs->cur, level, pbp); in xchk_btree_get_block()
545 level, *pbp); in xchk_btree_get_block()
548 level, *pbp); in xchk_btree_get_block()
550 xchk_btree_set_corrupt(bs->sc, bs->cur, level); in xchk_btree_get_block()
556 xchk_btree_check_minrecs(bs, level, *pblock); in xchk_btree_get_block()
562 error = xchk_btree_check_owner(bs, level, *pbp); in xchk_btree_get_block()
580 int level, in xchk_btree_block_keys() argument
591 if (level >= cur->bc_nlevels - 1) in xchk_btree_block_keys()
598 parent_block = xfs_btree_get_block(cur, level + 1, &bp); in xchk_btree_block_keys()
599 parent_keys = xfs_btree_key_addr(cur, cur->bc_levels[level + 1].ptr, in xchk_btree_block_keys()
610 high_pk = xfs_btree_high_key_addr(cur, cur->bc_levels[level + 1].ptr, in xchk_btree_block_keys()
639 int level; in xchk_btree() local
668 level = cur->bc_nlevels - 1; in xchk_btree()
672 error = xchk_btree_get_block(bs, level, &ptr, &block, &bp); in xchk_btree()
676 cur->bc_levels[level].ptr = 1; in xchk_btree()
678 while (level < cur->bc_nlevels) { in xchk_btree()
679 block = xfs_btree_get_block(cur, level, &bp); in xchk_btree()
681 if (level == 0) { in xchk_btree()
683 if (cur->bc_levels[level].ptr > in xchk_btree()
685 xchk_btree_block_keys(bs, level, block); in xchk_btree()
686 if (level < cur->bc_nlevels - 1) in xchk_btree()
687 cur->bc_levels[level + 1].ptr++; in xchk_btree()
688 level++; in xchk_btree()
705 cur->bc_levels[level].ptr++; in xchk_btree()
710 if (cur->bc_levels[level].ptr > in xchk_btree()
712 xchk_btree_block_keys(bs, level, block); in xchk_btree()
713 if (level < cur->bc_nlevels - 1) in xchk_btree()
714 cur->bc_levels[level + 1].ptr++; in xchk_btree()
715 level++; in xchk_btree()
720 xchk_btree_key(bs, level); in xchk_btree()
723 pp = xfs_btree_ptr_addr(cur, cur->bc_levels[level].ptr, block); in xchk_btree()
724 if (!xchk_btree_ptr_ok(bs, level, pp)) { in xchk_btree()
725 cur->bc_levels[level].ptr++; in xchk_btree()
728 level--; in xchk_btree()
729 error = xchk_btree_get_block(bs, level, pp, &block, &bp); in xchk_btree()
733 cur->bc_levels[level].ptr = 1; in xchk_btree()
740 error = xchk_btree_check_block_owner(bs, co->level, in xchk_btree()