Lines Matching refs:level
28 int level, in __xchk_btree_process_error() argument
49 trace_xchk_ifork_btree_op_error(sc, cur, level, in __xchk_btree_process_error()
52 trace_xchk_btree_op_error(sc, cur, level, in __xchk_btree_process_error()
63 int level, in xchk_btree_process_error() argument
66 return __xchk_btree_process_error(sc, cur, level, error, in xchk_btree_process_error()
74 int level, in xchk_btree_xref_process_error() argument
77 return __xchk_btree_process_error(sc, cur, level, error, in xchk_btree_xref_process_error()
86 int level, in __xchk_btree_set_corrupt() argument
93 trace_xchk_ifork_btree_error(sc, cur, level, in __xchk_btree_set_corrupt()
96 trace_xchk_btree_error(sc, cur, level, in __xchk_btree_set_corrupt()
104 int level) in xchk_btree_set_corrupt() argument
106 __xchk_btree_set_corrupt(sc, cur, level, XFS_SCRUB_OFLAG_CORRUPT, in xchk_btree_set_corrupt()
114 int level) in xchk_btree_xref_set_corrupt() argument
116 __xchk_btree_set_corrupt(sc, cur, level, XFS_SCRUB_OFLAG_XCORRUPT, in xchk_btree_xref_set_corrupt()
175 int level) in xchk_btree_key() argument
184 block = xfs_btree_get_block(cur, level, &bp); in xchk_btree_key()
185 key = xfs_btree_key_addr(cur, cur->bc_ptrs[level], block); in xchk_btree_key()
187 trace_xchk_btree_key(bs->sc, cur, level); in xchk_btree_key()
190 if (!bs->firstkey[level] && in xchk_btree_key()
191 !cur->bc_ops->keys_inorder(cur, &bs->lastkey[level], key)) in xchk_btree_key()
192 xchk_btree_set_corrupt(bs->sc, cur, level); in xchk_btree_key()
193 bs->firstkey[level] = false; in xchk_btree_key()
194 memcpy(&bs->lastkey[level], 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_ptrs[level + 1], 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_ptrs[level], block); in xchk_btree_key()
210 keyp = xfs_btree_high_key_addr(cur, cur->bc_ptrs[level + 1], keyblock); in xchk_btree_key()
212 xchk_btree_set_corrupt(bs->sc, cur, level); in xchk_btree_key()
222 int level, in xchk_btree_ptr_ok() argument
229 level == bs->cur->bc_nlevels) in xchk_btree_ptr_ok()
234 res = xfs_btree_check_lptr(bs->cur, be64_to_cpu(ptr->l), level); in xchk_btree_ptr_ok()
236 res = xfs_btree_check_sptr(bs->cur, be32_to_cpu(ptr->s), level); in xchk_btree_ptr_ok()
238 xchk_btree_set_corrupt(bs->sc, bs->cur, level); in xchk_btree_ptr_ok()
247 int level, in xchk_btree_block_check_sibling() argument
260 if (!xchk_btree_process_error(bs->sc, cur, level + 1, &error) || in xchk_btree_block_check_sibling()
270 error = xfs_btree_increment(ncur, level + 1, &success); in xchk_btree_block_check_sibling()
272 error = xfs_btree_decrement(ncur, level + 1, &success); in xchk_btree_block_check_sibling()
274 xchk_btree_set_corrupt(bs->sc, cur, level); in xchk_btree_block_check_sibling()
281 error = xfs_btree_increment(ncur, level + 1, &success); in xchk_btree_block_check_sibling()
283 error = xfs_btree_decrement(ncur, level + 1, &success); in xchk_btree_block_check_sibling()
284 if (!xchk_btree_process_error(bs->sc, cur, level + 1, &error)) in xchk_btree_block_check_sibling()
287 xchk_btree_set_corrupt(bs->sc, cur, level + 1); in xchk_btree_block_check_sibling()
292 pblock = xfs_btree_get_block(ncur, level + 1, &pbp); in xchk_btree_block_check_sibling()
293 pp = xfs_btree_ptr_addr(ncur, ncur->bc_ptrs[level + 1], pblock); in xchk_btree_block_check_sibling()
294 if (!xchk_btree_ptr_ok(bs, level + 1, pp)) in xchk_btree_block_check_sibling()
300 xchk_btree_set_corrupt(bs->sc, cur, level); in xchk_btree_block_check_sibling()
315 int level; in xchk_btree_block_check_siblings() local
320 level = xfs_btree_get_level(block); in xchk_btree_block_check_siblings()
323 if (level == cur->bc_nlevels - 1) { in xchk_btree_block_check_siblings()
326 xchk_btree_set_corrupt(bs->sc, cur, level); in xchk_btree_block_check_siblings()
335 error = xchk_btree_block_check_sibling(bs, level, -1, &leftsib); in xchk_btree_block_check_siblings()
338 error = xchk_btree_block_check_sibling(bs, level, 1, &rightsib); in xchk_btree_block_check_siblings()
348 int level; member
358 int level, in xchk_btree_check_block_owner() argument
378 level, &error)) in xchk_btree_check_block_owner()
405 int level, in xchk_btree_check_owner() argument
419 xchk_btree_set_corrupt(bs->sc, bs->cur, level); in xchk_btree_check_owner()
436 co->level = level; in xchk_btree_check_owner()
442 return xchk_btree_check_block_owner(bs, level, XFS_BUF_ADDR(bp)); in xchk_btree_check_owner()
452 int level, in xchk_btree_check_minrecs() argument
461 if (numrecs >= bs->cur->bc_ops->get_minrecs(bs->cur, level)) in xchk_btree_check_minrecs()
477 if (level >= ok_level) in xchk_btree_check_minrecs()
480 xchk_btree_set_corrupt(bs->sc, bs->cur, level); in xchk_btree_check_minrecs()
490 int level, in xchk_btree_get_block() argument
501 error = xfs_btree_lookup_get_block(bs->cur, level, pp, pblock); in xchk_btree_get_block()
502 if (!xchk_btree_process_error(bs->sc, bs->cur, level, &error) || in xchk_btree_get_block()
506 xfs_btree_get_block(bs->cur, level, pbp); in xchk_btree_get_block()
509 level, *pbp); in xchk_btree_get_block()
512 level, *pbp); in xchk_btree_get_block()
514 xchk_btree_set_corrupt(bs->sc, bs->cur, level); in xchk_btree_get_block()
520 xchk_btree_check_minrecs(bs, level, *pblock); in xchk_btree_get_block()
526 error = xchk_btree_check_owner(bs, level, *pbp); in xchk_btree_get_block()
544 int level, in xchk_btree_block_keys() argument
555 if (level >= cur->bc_nlevels - 1) in xchk_btree_block_keys()
562 parent_block = xfs_btree_get_block(cur, level + 1, &bp); in xchk_btree_block_keys()
563 parent_keys = xfs_btree_key_addr(cur, cur->bc_ptrs[level + 1], in xchk_btree_block_keys()
574 high_pk = xfs_btree_high_key_addr(cur, cur->bc_ptrs[level + 1], in xchk_btree_block_keys()
606 int level; in xchk_btree() local
628 level = cur->bc_nlevels - 1; in xchk_btree()
632 error = xchk_btree_get_block(&bs, level, &ptr, &block, &bp); in xchk_btree()
636 cur->bc_ptrs[level] = 1; in xchk_btree()
638 while (level < cur->bc_nlevels) { in xchk_btree()
639 block = xfs_btree_get_block(cur, level, &bp); in xchk_btree()
641 if (level == 0) { in xchk_btree()
643 if (cur->bc_ptrs[level] > in xchk_btree()
645 xchk_btree_block_keys(&bs, level, block); in xchk_btree()
646 if (level < cur->bc_nlevels - 1) in xchk_btree()
647 cur->bc_ptrs[level + 1]++; in xchk_btree()
648 level++; in xchk_btree()
664 cur->bc_ptrs[level]++; in xchk_btree()
669 if (cur->bc_ptrs[level] > be16_to_cpu(block->bb_numrecs)) { in xchk_btree()
670 xchk_btree_block_keys(&bs, level, block); in xchk_btree()
671 if (level < cur->bc_nlevels - 1) in xchk_btree()
672 cur->bc_ptrs[level + 1]++; in xchk_btree()
673 level++; in xchk_btree()
678 xchk_btree_key(&bs, level); in xchk_btree()
681 pp = xfs_btree_ptr_addr(cur, cur->bc_ptrs[level], block); in xchk_btree()
682 if (!xchk_btree_ptr_ok(&bs, level, pp)) { in xchk_btree()
683 cur->bc_ptrs[level]++; in xchk_btree()
686 level--; in xchk_btree()
687 error = xchk_btree_get_block(&bs, level, pp, &block, &bp); in xchk_btree()
691 cur->bc_ptrs[level] = 1; in xchk_btree()
699 co->level, co->daddr); in xchk_btree()