Lines Matching refs:depth
181 int depth = path->p_depth; in ext4_ext_find_goal() local
201 ex = path[depth].p_ext; in ext4_ext_find_goal()
214 if (path[depth].p_bh) in ext4_ext_find_goal()
215 return path[depth].p_bh->b_blocknr; in ext4_ext_find_goal()
354 ext4_ext_max_entries(struct inode *inode, int depth) in ext4_ext_max_entries() argument
358 if (depth == ext_depth(inode)) { in ext4_ext_max_entries()
359 if (depth == 0) in ext4_ext_max_entries()
364 if (depth == 0) in ext4_ext_max_entries()
395 int depth) in ext4_valid_extent_entries() argument
403 if (depth == 0) { in ext4_valid_extent_entries()
441 int depth, ext4_fsblk_t pblk) in __ext4_ext_check() argument
450 if (unlikely(le16_to_cpu(eh->eh_depth) != depth)) { in __ext4_ext_check()
458 max = ext4_ext_max_entries(inode, depth); in __ext4_ext_check()
467 if (!ext4_valid_extent_entries(inode, eh, depth)) { in __ext4_ext_check()
472 if (ext_depth(inode) != depth && in __ext4_ext_check()
486 max, le16_to_cpu(eh->eh_depth), depth); in __ext4_ext_check()
490 #define ext4_ext_check(inode, eh, depth, pblk) \ argument
491 __ext4_ext_check(__func__, __LINE__, (inode), (eh), (depth), (pblk))
500 struct inode *inode, ext4_fsblk_t pblk, int depth, in __read_extent_tree_block() argument
519 ext_block_hdr(bh), depth, pblk); in __read_extent_tree_block()
526 if (!(flags & EXT4_EX_NOCACHE) && depth == 0) { in __read_extent_tree_block()
556 #define read_extent_tree_block(inode, pblk, depth, flags) \ argument
558 (depth), (flags))
569 int i = 0, depth, ret = 0; in ext4_ext_precache() local
575 depth = ext_depth(inode); in ext4_ext_precache()
577 path = kzalloc(sizeof(struct ext4_ext_path) * (depth + 1), in ext4_ext_precache()
585 if (depth == 0) in ext4_ext_precache()
588 ret = ext4_ext_check(inode, path[0].p_hdr, depth, 0); in ext4_ext_precache()
597 if ((i == depth) || in ext4_ext_precache()
606 depth - i - 1, in ext4_ext_precache()
649 int depth = ext_depth(inode); in ext4_ext_show_leaf() local
657 eh = path[depth].p_hdr; in ext4_ext_show_leaf()
673 int depth = ext_depth(inode); in ext4_ext_show_move() local
676 if (depth != level) { in ext4_ext_show_move()
690 ex = path[depth].p_ext; in ext4_ext_show_move()
691 while (ex <= EXT_MAX_EXTENT(path[depth].p_hdr)) { in ext4_ext_show_move()
710 int depth, i; in ext4_ext_drop_refs() local
714 depth = path->p_depth; in ext4_ext_drop_refs()
715 for (i = 0; i <= depth; i++, path++) in ext4_ext_drop_refs()
864 short int depth, i, ppos = 0; in ext4_find_extent() local
868 depth = ext_depth(inode); in ext4_find_extent()
872 if (depth > path[0].p_maxdepth) { in ext4_find_extent()
879 path = kzalloc(sizeof(struct ext4_ext_path) * (depth + 2), in ext4_find_extent()
883 path[0].p_maxdepth = depth + 1; in ext4_find_extent()
888 i = depth; in ext4_find_extent()
908 if (unlikely(ppos > depth)) { in ext4_find_extent()
911 "ppos %d > depth %d", ppos, depth); in ext4_find_extent()
1028 int depth = ext_depth(inode); in ext4_ext_split() local
1042 if (unlikely(path[depth].p_ext > EXT_MAX_EXTENT(path[depth].p_hdr))) { in ext4_ext_split()
1046 if (path[depth].p_ext != EXT_MAX_EXTENT(path[depth].p_hdr)) { in ext4_ext_split()
1047 border = path[depth].p_ext[1].ee_block; in ext4_ext_split()
1070 ablocks = kzalloc(sizeof(ext4_fsblk_t) * depth, GFP_NOFS); in ext4_ext_split()
1075 ext_debug("allocate %d blocks for indexes/leaf\n", depth - at); in ext4_ext_split()
1076 for (a = 0; a < depth - at; a++) { in ext4_ext_split()
1109 if (unlikely(path[depth].p_hdr->eh_entries != in ext4_ext_split()
1110 path[depth].p_hdr->eh_max)) { in ext4_ext_split()
1112 path[depth].p_hdr->eh_entries, in ext4_ext_split()
1113 path[depth].p_hdr->eh_max); in ext4_ext_split()
1118 m = EXT_MAX_EXTENT(path[depth].p_hdr) - path[depth].p_ext++; in ext4_ext_split()
1119 ext4_ext_show_move(inode, path, newblock, depth); in ext4_ext_split()
1123 memmove(ex, path[depth].p_ext, sizeof(struct ext4_extent) * m); in ext4_ext_split()
1139 err = ext4_ext_get_access(handle, inode, path + depth); in ext4_ext_split()
1142 le16_add_cpu(&path[depth].p_hdr->eh_entries, -m); in ext4_ext_split()
1143 err = ext4_ext_dirty(handle, inode, path + depth); in ext4_ext_split()
1150 k = depth - at - 1; in ext4_ext_split()
1160 i = depth - 1; in ext4_ext_split()
1179 neh->eh_depth = cpu_to_le16(depth - i); in ext4_ext_split()
1243 for (i = 0; i < depth; i++) { in ext4_ext_split()
1353 int depth, i, err = 0; in ext4_ext_create_new_leaf() local
1356 i = depth = ext_depth(inode); in ext4_ext_create_new_leaf()
1359 curp = path + depth; in ext4_ext_create_new_leaf()
1399 depth = ext_depth(inode); in ext4_ext_create_new_leaf()
1400 if (path[depth].p_hdr->eh_entries == path[depth].p_hdr->eh_max) { in ext4_ext_create_new_leaf()
1423 int depth, ee_len; in ext4_ext_search_left() local
1429 depth = path->p_depth; in ext4_ext_search_left()
1432 if (depth == 0 && path->p_ext == NULL) in ext4_ext_search_left()
1439 ex = path[depth].p_ext; in ext4_ext_search_left()
1442 if (unlikely(EXT_FIRST_EXTENT(path[depth].p_hdr) != ex)) { in ext4_ext_search_left()
1448 while (--depth >= 0) { in ext4_ext_search_left()
1449 ix = path[depth].p_idx; in ext4_ext_search_left()
1450 if (unlikely(ix != EXT_FIRST_INDEX(path[depth].p_hdr))) { in ext4_ext_search_left()
1454 EXT_FIRST_INDEX(path[depth].p_hdr) != NULL ? in ext4_ext_search_left()
1455 le32_to_cpu(EXT_FIRST_INDEX(path[depth].p_hdr)->ei_block) : 0, in ext4_ext_search_left()
1456 depth); in ext4_ext_search_left()
1492 int depth; /* Note, NOT eh_depth; depth from top of tree */ in ext4_ext_search_right() local
1499 depth = path->p_depth; in ext4_ext_search_right()
1502 if (depth == 0 && path->p_ext == NULL) in ext4_ext_search_right()
1509 ex = path[depth].p_ext; in ext4_ext_search_right()
1512 if (unlikely(EXT_FIRST_EXTENT(path[depth].p_hdr) != ex)) { in ext4_ext_search_right()
1515 depth); in ext4_ext_search_right()
1518 while (--depth >= 0) { in ext4_ext_search_right()
1519 ix = path[depth].p_idx; in ext4_ext_search_right()
1520 if (unlikely(ix != EXT_FIRST_INDEX(path[depth].p_hdr))) { in ext4_ext_search_right()
1537 if (ex != EXT_LAST_EXTENT(path[depth].p_hdr)) { in ext4_ext_search_right()
1544 while (--depth >= 0) { in ext4_ext_search_right()
1545 ix = path[depth].p_idx; in ext4_ext_search_right()
1546 if (ix != EXT_LAST_INDEX(path[depth].p_hdr)) in ext4_ext_search_right()
1559 while (++depth < path->p_depth) { in ext4_ext_search_right()
1562 path->p_depth - depth, 0); in ext4_ext_search_right()
1571 bh = read_extent_tree_block(inode, block, path->p_depth - depth, 0); in ext4_ext_search_right()
1595 int depth; in ext4_ext_next_allocated_block() local
1598 depth = path->p_depth; in ext4_ext_next_allocated_block()
1600 if (depth == 0 && path->p_ext == NULL) in ext4_ext_next_allocated_block()
1603 while (depth >= 0) { in ext4_ext_next_allocated_block()
1604 if (depth == path->p_depth) { in ext4_ext_next_allocated_block()
1606 if (path[depth].p_ext && in ext4_ext_next_allocated_block()
1607 path[depth].p_ext != in ext4_ext_next_allocated_block()
1608 EXT_LAST_EXTENT(path[depth].p_hdr)) in ext4_ext_next_allocated_block()
1609 return le32_to_cpu(path[depth].p_ext[1].ee_block); in ext4_ext_next_allocated_block()
1612 if (path[depth].p_idx != in ext4_ext_next_allocated_block()
1613 EXT_LAST_INDEX(path[depth].p_hdr)) in ext4_ext_next_allocated_block()
1614 return le32_to_cpu(path[depth].p_idx[1].ei_block); in ext4_ext_next_allocated_block()
1616 depth--; in ext4_ext_next_allocated_block()
1628 int depth; in ext4_ext_next_leaf_block() local
1631 depth = path->p_depth; in ext4_ext_next_leaf_block()
1634 if (depth == 0) in ext4_ext_next_leaf_block()
1638 depth--; in ext4_ext_next_leaf_block()
1640 while (depth >= 0) { in ext4_ext_next_leaf_block()
1641 if (path[depth].p_idx != in ext4_ext_next_leaf_block()
1642 EXT_LAST_INDEX(path[depth].p_hdr)) in ext4_ext_next_leaf_block()
1644 le32_to_cpu(path[depth].p_idx[1].ei_block); in ext4_ext_next_leaf_block()
1645 depth--; in ext4_ext_next_leaf_block()
1661 int depth = ext_depth(inode); in ext4_ext_correct_indexes() local
1666 eh = path[depth].p_hdr; in ext4_ext_correct_indexes()
1667 ex = path[depth].p_ext; in ext4_ext_correct_indexes()
1675 if (depth == 0) { in ext4_ext_correct_indexes()
1688 k = depth - 1; in ext4_ext_correct_indexes()
1689 border = path[depth].p_ext->ee_block; in ext4_ext_correct_indexes()
1764 unsigned int depth, len; in ext4_ext_try_to_merge_right() local
1767 depth = ext_depth(inode); in ext4_ext_try_to_merge_right()
1768 BUG_ON(path[depth].p_hdr == NULL); in ext4_ext_try_to_merge_right()
1769 eh = path[depth].p_hdr; in ext4_ext_try_to_merge_right()
1850 unsigned int depth; in ext4_ext_try_to_merge() local
1853 depth = ext_depth(inode); in ext4_ext_try_to_merge()
1854 BUG_ON(path[depth].p_hdr == NULL); in ext4_ext_try_to_merge()
1855 eh = path[depth].p_hdr; in ext4_ext_try_to_merge()
1880 unsigned int depth, len1; in ext4_ext_check_overlap() local
1885 depth = ext_depth(inode); in ext4_ext_check_overlap()
1886 if (!path[depth].p_ext) in ext4_ext_check_overlap()
1888 b2 = EXT4_LBLK_CMASK(sbi, le32_to_cpu(path[depth].p_ext->ee_block)); in ext4_ext_check_overlap()
1932 int depth, len, err; in ext4_ext_insert_extent() local
1942 depth = ext_depth(inode); in ext4_ext_insert_extent()
1943 ex = path[depth].p_ext; in ext4_ext_insert_extent()
1944 eh = path[depth].p_hdr; in ext4_ext_insert_extent()
1945 if (unlikely(path[depth].p_hdr == NULL)) { in ext4_ext_insert_extent()
1946 EXT4_ERROR_INODE(inode, "path[%d].p_hdr == NULL", depth); in ext4_ext_insert_extent()
1983 path + depth); in ext4_ext_insert_extent()
1991 eh = path[depth].p_hdr; in ext4_ext_insert_extent()
2009 path + depth); in ext4_ext_insert_extent()
2020 eh = path[depth].p_hdr; in ext4_ext_insert_extent()
2026 depth = ext_depth(inode); in ext4_ext_insert_extent()
2027 eh = path[depth].p_hdr; in ext4_ext_insert_extent()
2043 eh = npath[depth].p_hdr; in ext4_ext_insert_extent()
2064 depth = ext_depth(inode); in ext4_ext_insert_extent()
2065 eh = path[depth].p_hdr; in ext4_ext_insert_extent()
2068 nearex = path[depth].p_ext; in ext4_ext_insert_extent()
2070 err = ext4_ext_get_access(handle, inode, path + depth); in ext4_ext_insert_extent()
2120 path[depth].p_ext = nearex; in ext4_ext_insert_extent()
2153 int exists, depth = 0, err = 0; in ext4_fill_fiemap_extents() local
2170 depth = ext_depth(inode); in ext4_fill_fiemap_extents()
2171 if (unlikely(path[depth].p_hdr == NULL)) { in ext4_fill_fiemap_extents()
2173 EXT4_ERROR_INODE(inode, "path[%d].p_hdr == NULL", depth); in ext4_fill_fiemap_extents()
2177 ex = path[depth].p_ext; in ext4_fill_fiemap_extents()
2302 int depth = ext_depth(inode); in ext4_ext_put_gap_in_cache() local
2308 ex = path[depth].p_ext; in ext4_ext_put_gap_in_cache()
2354 struct ext4_ext_path *path, int depth) in ext4_ext_rm_idx() argument
2360 depth--; in ext4_ext_rm_idx()
2361 path = path + depth; in ext4_ext_rm_idx()
2387 while (--depth >= 0) { in ext4_ext_rm_idx()
2413 int depth = ext_depth(inode); in ext4_ext_calc_credits_for_single_extent() local
2417 if (le16_to_cpu(path[depth].p_hdr->eh_entries) in ext4_ext_calc_credits_for_single_extent()
2418 < le16_to_cpu(path[depth].p_hdr->eh_max)) { in ext4_ext_calc_credits_for_single_extent()
2449 int depth; in ext4_ext_index_trans_blocks() local
2455 depth = ext_depth(inode); in ext4_ext_index_trans_blocks()
2458 index = depth * 2; in ext4_ext_index_trans_blocks()
2460 index = depth * 3; in ext4_ext_index_trans_blocks()
2597 int depth = ext_depth(inode), credits; in ext4_ext_rm_leaf() local
2609 if (!path[depth].p_hdr) in ext4_ext_rm_leaf()
2610 path[depth].p_hdr = ext_block_hdr(path[depth].p_bh); in ext4_ext_rm_leaf()
2611 eh = path[depth].p_hdr; in ext4_ext_rm_leaf()
2612 if (unlikely(path[depth].p_hdr == NULL)) { in ext4_ext_rm_leaf()
2613 EXT4_ERROR_INODE(inode, "path[%d].p_hdr == NULL", depth); in ext4_ext_rm_leaf()
2617 ex = path[depth].p_ext; in ext4_ext_rm_leaf()
2636 path[depth].p_ext = ex; in ext4_ext_rm_leaf()
2694 err = ext4_ext_get_access(handle, inode, path + depth); in ext4_ext_rm_leaf()
2735 err = ext4_ext_dirty(handle, inode, path + depth); in ext4_ext_rm_leaf()
2769 if (err == 0 && eh->eh_entries == 0 && path[depth].p_bh != NULL) in ext4_ext_rm_leaf()
2770 err = ext4_ext_rm_idx(handle, inode, path, depth); in ext4_ext_rm_leaf()
2801 int depth = ext_depth(inode); in ext4_ext_remove_space() local
2810 handle = ext4_journal_start(inode, EXT4_HT_TRUNCATE, depth + 1); in ext4_ext_remove_space()
2815 trace_ext4_ext_remove_space(inode, start, end, depth); in ext4_ext_remove_space()
2835 depth = ext_depth(inode); in ext4_ext_remove_space()
2837 ex = path[depth].p_ext; in ext4_ext_remove_space()
2839 if (depth) { in ext4_ext_remove_space()
2842 depth); in ext4_ext_remove_space()
2904 depth = ext_depth(inode); in ext4_ext_remove_space()
2906 int k = i = depth; in ext4_ext_remove_space()
2911 path = kzalloc(sizeof(struct ext4_ext_path) * (depth + 1), in ext4_ext_remove_space()
2917 path[0].p_maxdepth = path[0].p_depth = depth; in ext4_ext_remove_space()
2921 if (ext4_ext_check(inode, path[0].p_hdr, depth, 0)) { in ext4_ext_remove_space()
2929 if (i == depth) { in ext4_ext_remove_space()
2969 ext4_idx_pblock(path[i].p_idx), depth - i - 1, in ext4_ext_remove_space()
2979 if (WARN_ON(i + 1 > depth)) { in ext4_ext_remove_space()
3005 trace_ext4_ext_remove_space_done(inode, start, end, depth, in ext4_ext_remove_space()
3168 unsigned int ee_len, depth; in ext4_split_extent_at() local
3179 depth = ext_depth(inode); in ext4_split_extent_at()
3180 ex = path[depth].p_ext; in ext4_split_extent_at()
3191 err = ext4_ext_get_access(handle, inode, path + depth); in ext4_split_extent_at()
3223 err = ext4_ext_dirty(handle, inode, path + depth); in ext4_split_extent_at()
3308 unsigned int ee_len, depth; in ext4_split_extent() local
3314 depth = ext_depth(inode); in ext4_split_extent()
3315 ex = path[depth].p_ext; in ext4_split_extent()
3342 depth = ext_depth(inode); in ext4_split_extent()
3343 ex = path[depth].p_ext; in ext4_split_extent()
3403 unsigned int ee_len, depth, map_len = map->m_len; in ext4_ext_convert_to_initialized() local
3418 depth = ext_depth(inode); in ext4_ext_convert_to_initialized()
3419 eh = path[depth].p_hdr; in ext4_ext_convert_to_initialized()
3420 ex = path[depth].p_ext; in ext4_ext_convert_to_initialized()
3473 err = ext4_ext_get_access(handle, inode, path + depth); in ext4_ext_convert_to_initialized()
3519 err = ext4_ext_get_access(handle, inode, path + depth); in ext4_ext_convert_to_initialized()
3541 ext4_ext_dirty(handle, inode, path + depth); in ext4_ext_convert_to_initialized()
3544 path[depth].p_ext = abut_ex; in ext4_ext_convert_to_initialized()
3569 err = ext4_ext_get_access(handle, inode, path + depth); in ext4_ext_convert_to_initialized()
3666 int split_flag = 0, depth; in ext4_split_convert_extents() local
3680 depth = ext_depth(inode); in ext4_split_convert_extents()
3681 ex = path[depth].p_ext; in ext4_split_convert_extents()
3707 int depth; in ext4_convert_unwritten_extents_endio() local
3710 depth = ext_depth(inode); in ext4_convert_unwritten_extents_endio()
3711 ex = path[depth].p_ext; in ext4_convert_unwritten_extents_endio()
3739 depth = ext_depth(inode); in ext4_convert_unwritten_extents_endio()
3740 ex = path[depth].p_ext; in ext4_convert_unwritten_extents_endio()
3743 err = ext4_ext_get_access(handle, inode, path + depth); in ext4_convert_unwritten_extents_endio()
3777 int i, depth; in check_eofblocks_fl() local
3784 depth = ext_depth(inode); in check_eofblocks_fl()
3785 eh = path[depth].p_hdr; in check_eofblocks_fl()
3814 for (i = depth-1; i >= 0; i--) in check_eofblocks_fl()
3940 int depth; in convert_initialized_extent() local
3950 depth = ext_depth(inode); in convert_initialized_extent()
3951 ex = path[depth].p_ext; in convert_initialized_extent()
3967 depth = ext_depth(inode); in convert_initialized_extent()
3968 ex = path[depth].p_ext; in convert_initialized_extent()
3976 err = ext4_ext_get_access(handle, inode, path + depth); in convert_initialized_extent()
4277 int free_on_err = 0, err = 0, depth, ret; in ext4_ext_map_blocks() local
4298 depth = ext_depth(inode); in ext4_ext_map_blocks()
4305 if (unlikely(path[depth].p_ext == NULL && depth != 0)) { in ext4_ext_map_blocks()
4308 (unsigned long) map->m_lblk, depth, in ext4_ext_map_blocks()
4309 path[depth].p_block); in ext4_ext_map_blocks()
4314 ex = path[depth].p_ext; in ext4_ext_map_blocks()
5239 int depth, err = 0; in ext4_ext_shift_path_extents() local
5242 depth = path->p_depth; in ext4_ext_shift_path_extents()
5244 while (depth >= 0) { in ext4_ext_shift_path_extents()
5245 if (depth == path->p_depth) { in ext4_ext_shift_path_extents()
5246 ex_start = path[depth].p_ext; in ext4_ext_shift_path_extents()
5250 ex_last = EXT_LAST_EXTENT(path[depth].p_hdr); in ext4_ext_shift_path_extents()
5252 err = ext4_access_path(handle, inode, path + depth); in ext4_ext_shift_path_extents()
5256 if (ex_start == EXT_FIRST_EXTENT(path[depth].p_hdr)) in ext4_ext_shift_path_extents()
5266 EXT_FIRST_EXTENT(path[depth].p_hdr)) && in ext4_ext_shift_path_extents()
5273 err = ext4_ext_dirty(handle, inode, path + depth); in ext4_ext_shift_path_extents()
5277 if (--depth < 0 || !update) in ext4_ext_shift_path_extents()
5282 err = ext4_access_path(handle, inode, path + depth); in ext4_ext_shift_path_extents()
5286 le32_add_cpu(&path[depth].p_idx->ei_block, -shift); in ext4_ext_shift_path_extents()
5287 err = ext4_ext_dirty(handle, inode, path + depth); in ext4_ext_shift_path_extents()
5292 if (path[depth].p_idx != EXT_FIRST_INDEX(path[depth].p_hdr)) in ext4_ext_shift_path_extents()
5295 depth--; in ext4_ext_shift_path_extents()
5313 int ret = 0, depth; in ext4_ext_shift_extents() local
5323 depth = path->p_depth; in ext4_ext_shift_extents()
5324 extent = path[depth].p_ext; in ext4_ext_shift_extents()
5342 depth = path->p_depth; in ext4_ext_shift_extents()
5343 extent = path[depth].p_ext; in ext4_ext_shift_extents()
5362 depth = path->p_depth; in ext4_ext_shift_extents()
5363 extent = path[depth].p_ext; in ext4_ext_shift_extents()
5371 if (extent < EXT_LAST_EXTENT(path[depth].p_hdr)) { in ext4_ext_shift_extents()
5372 path[depth].p_ext++; in ext4_ext_shift_extents()