Lines Matching full: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_ptrs[level], block); in xchk_btree_key()
188 trace_xchk_btree_key(bs->sc, cur, level); in xchk_btree_key()
191 if (!bs->firstkey[level] && in xchk_btree_key()
192 !cur->bc_ops->keys_inorder(cur, &bs->lastkey[level], key)) in xchk_btree_key()
193 xchk_btree_set_corrupt(bs->sc, cur, level); in xchk_btree_key()
194 bs->firstkey[level] = false; in xchk_btree_key()
195 memcpy(&bs->lastkey[level], key, cur->bc_ops->key_len); in xchk_btree_key()
197 if (level + 1 >= cur->bc_nlevels) in xchk_btree_key()
201 keyblock = xfs_btree_get_block(cur, level + 1, &bp); in xchk_btree_key()
202 keyp = xfs_btree_key_addr(cur, cur->bc_ptrs[level + 1], keyblock); in xchk_btree_key()
204 xchk_btree_set_corrupt(bs->sc, cur, level); in xchk_btree_key()
210 key = xfs_btree_high_key_addr(cur, cur->bc_ptrs[level], block); in xchk_btree_key()
211 keyp = xfs_btree_high_key_addr(cur, cur->bc_ptrs[level + 1], keyblock); 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()
267 * level pointer anywhere. 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()
280 /* Increment upper level pointer. */ 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()
292 /* Compare upper level pointer to sibling pointer. */ 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_ptrs[level + 1], 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()
333 * parent level pointers? 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()
512 * Otherwise, only the root level is allowed to have fewer than minrecs 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_ptrs[level + 1], in xchk_btree_block_keys()
610 high_pk = xfs_btree_high_key_addr(cur, cur->bc_ptrs[level + 1], in xchk_btree_block_keys()
642 int level; in xchk_btree() local
664 level = cur->bc_nlevels - 1; in xchk_btree()
668 error = xchk_btree_get_block(&bs, level, &ptr, &block, &bp); in xchk_btree()
672 cur->bc_ptrs[level] = 1; in xchk_btree()
674 while (level < cur->bc_nlevels) { in xchk_btree()
675 block = xfs_btree_get_block(cur, level, &bp); in xchk_btree()
677 if (level == 0) { in xchk_btree()
679 if (cur->bc_ptrs[level] > in xchk_btree()
681 xchk_btree_block_keys(&bs, level, block); in xchk_btree()
682 if (level < cur->bc_nlevels - 1) in xchk_btree()
683 cur->bc_ptrs[level + 1]++; in xchk_btree()
684 level++; in xchk_btree()
700 cur->bc_ptrs[level]++; in xchk_btree()
705 if (cur->bc_ptrs[level] > be16_to_cpu(block->bb_numrecs)) { in xchk_btree()
706 xchk_btree_block_keys(&bs, level, block); in xchk_btree()
707 if (level < cur->bc_nlevels - 1) in xchk_btree()
708 cur->bc_ptrs[level + 1]++; in xchk_btree()
709 level++; in xchk_btree()
714 xchk_btree_key(&bs, level); in xchk_btree()
716 /* Drill another level deeper. */ in xchk_btree()
717 pp = xfs_btree_ptr_addr(cur, cur->bc_ptrs[level], block); in xchk_btree()
718 if (!xchk_btree_ptr_ok(&bs, level, pp)) { in xchk_btree()
719 cur->bc_ptrs[level]++; in xchk_btree()
722 level--; in xchk_btree()
723 error = xchk_btree_get_block(&bs, level, pp, &block, &bp); in xchk_btree()
727 cur->bc_ptrs[level] = 1; in xchk_btree()
735 co->level, co->daddr); in xchk_btree()