Lines Matching refs:et

84 	void (*eo_set_last_eb_blk)(struct ocfs2_extent_tree *et,
86 u64 (*eo_get_last_eb_blk)(struct ocfs2_extent_tree *et);
94 void (*eo_update_clusters)(struct ocfs2_extent_tree *et,
101 void (*eo_extent_map_insert)(struct ocfs2_extent_tree *et,
108 void (*eo_extent_map_truncate)(struct ocfs2_extent_tree *et,
115 int (*eo_insert_check)(struct ocfs2_extent_tree *et,
117 int (*eo_sanity_check)(struct ocfs2_extent_tree *et);
129 void (*eo_fill_root_el)(struct ocfs2_extent_tree *et);
136 void (*eo_fill_max_leaf_clusters)(struct ocfs2_extent_tree *et);
144 (*eo_extent_contig)(struct ocfs2_extent_tree *et,
154 static u64 ocfs2_dinode_get_last_eb_blk(struct ocfs2_extent_tree *et);
155 static void ocfs2_dinode_set_last_eb_blk(struct ocfs2_extent_tree *et,
157 static void ocfs2_dinode_update_clusters(struct ocfs2_extent_tree *et,
159 static void ocfs2_dinode_extent_map_insert(struct ocfs2_extent_tree *et,
161 static void ocfs2_dinode_extent_map_truncate(struct ocfs2_extent_tree *et,
163 static int ocfs2_dinode_insert_check(struct ocfs2_extent_tree *et,
165 static int ocfs2_dinode_sanity_check(struct ocfs2_extent_tree *et);
166 static void ocfs2_dinode_fill_root_el(struct ocfs2_extent_tree *et);
178 static void ocfs2_dinode_set_last_eb_blk(struct ocfs2_extent_tree *et, in ocfs2_dinode_set_last_eb_blk() argument
181 struct ocfs2_dinode *di = et->et_object; in ocfs2_dinode_set_last_eb_blk()
183 BUG_ON(et->et_ops != &ocfs2_dinode_et_ops); in ocfs2_dinode_set_last_eb_blk()
187 static u64 ocfs2_dinode_get_last_eb_blk(struct ocfs2_extent_tree *et) in ocfs2_dinode_get_last_eb_blk() argument
189 struct ocfs2_dinode *di = et->et_object; in ocfs2_dinode_get_last_eb_blk()
191 BUG_ON(et->et_ops != &ocfs2_dinode_et_ops); in ocfs2_dinode_get_last_eb_blk()
195 static void ocfs2_dinode_update_clusters(struct ocfs2_extent_tree *et, in ocfs2_dinode_update_clusters() argument
198 struct ocfs2_inode_info *oi = cache_info_to_inode(et->et_ci); in ocfs2_dinode_update_clusters()
199 struct ocfs2_dinode *di = et->et_object; in ocfs2_dinode_update_clusters()
207 static void ocfs2_dinode_extent_map_insert(struct ocfs2_extent_tree *et, in ocfs2_dinode_extent_map_insert() argument
210 struct inode *inode = &cache_info_to_inode(et->et_ci)->vfs_inode; in ocfs2_dinode_extent_map_insert()
215 static void ocfs2_dinode_extent_map_truncate(struct ocfs2_extent_tree *et, in ocfs2_dinode_extent_map_truncate() argument
218 struct inode *inode = &cache_info_to_inode(et->et_ci)->vfs_inode; in ocfs2_dinode_extent_map_truncate()
223 static int ocfs2_dinode_insert_check(struct ocfs2_extent_tree *et, in ocfs2_dinode_insert_check() argument
226 struct ocfs2_inode_info *oi = cache_info_to_inode(et->et_ci); in ocfs2_dinode_insert_check()
241 static int ocfs2_dinode_sanity_check(struct ocfs2_extent_tree *et) in ocfs2_dinode_sanity_check() argument
243 struct ocfs2_dinode *di = et->et_object; in ocfs2_dinode_sanity_check()
245 BUG_ON(et->et_ops != &ocfs2_dinode_et_ops); in ocfs2_dinode_sanity_check()
251 static void ocfs2_dinode_fill_root_el(struct ocfs2_extent_tree *et) in ocfs2_dinode_fill_root_el() argument
253 struct ocfs2_dinode *di = et->et_object; in ocfs2_dinode_fill_root_el()
255 et->et_root_el = &di->id2.i_list; in ocfs2_dinode_fill_root_el()
259 static void ocfs2_xattr_value_fill_root_el(struct ocfs2_extent_tree *et) in ocfs2_xattr_value_fill_root_el() argument
261 struct ocfs2_xattr_value_buf *vb = et->et_object; in ocfs2_xattr_value_fill_root_el()
263 et->et_root_el = &vb->vb_xv->xr_list; in ocfs2_xattr_value_fill_root_el()
266 static void ocfs2_xattr_value_set_last_eb_blk(struct ocfs2_extent_tree *et, in ocfs2_xattr_value_set_last_eb_blk() argument
269 struct ocfs2_xattr_value_buf *vb = et->et_object; in ocfs2_xattr_value_set_last_eb_blk()
274 static u64 ocfs2_xattr_value_get_last_eb_blk(struct ocfs2_extent_tree *et) in ocfs2_xattr_value_get_last_eb_blk() argument
276 struct ocfs2_xattr_value_buf *vb = et->et_object; in ocfs2_xattr_value_get_last_eb_blk()
281 static void ocfs2_xattr_value_update_clusters(struct ocfs2_extent_tree *et, in ocfs2_xattr_value_update_clusters() argument
284 struct ocfs2_xattr_value_buf *vb = et->et_object; in ocfs2_xattr_value_update_clusters()
296 static void ocfs2_xattr_tree_fill_root_el(struct ocfs2_extent_tree *et) in ocfs2_xattr_tree_fill_root_el() argument
298 struct ocfs2_xattr_block *xb = et->et_object; in ocfs2_xattr_tree_fill_root_el()
300 et->et_root_el = &xb->xb_attrs.xb_root.xt_list; in ocfs2_xattr_tree_fill_root_el()
303 static void ocfs2_xattr_tree_fill_max_leaf_clusters(struct ocfs2_extent_tree *et) in ocfs2_xattr_tree_fill_max_leaf_clusters() argument
305 struct super_block *sb = ocfs2_metadata_cache_get_super(et->et_ci); in ocfs2_xattr_tree_fill_max_leaf_clusters()
306 et->et_max_leaf_clusters = in ocfs2_xattr_tree_fill_max_leaf_clusters()
310 static void ocfs2_xattr_tree_set_last_eb_blk(struct ocfs2_extent_tree *et, in ocfs2_xattr_tree_set_last_eb_blk() argument
313 struct ocfs2_xattr_block *xb = et->et_object; in ocfs2_xattr_tree_set_last_eb_blk()
319 static u64 ocfs2_xattr_tree_get_last_eb_blk(struct ocfs2_extent_tree *et) in ocfs2_xattr_tree_get_last_eb_blk() argument
321 struct ocfs2_xattr_block *xb = et->et_object; in ocfs2_xattr_tree_get_last_eb_blk()
327 static void ocfs2_xattr_tree_update_clusters(struct ocfs2_extent_tree *et, in ocfs2_xattr_tree_update_clusters() argument
330 struct ocfs2_xattr_block *xb = et->et_object; in ocfs2_xattr_tree_update_clusters()
343 static void ocfs2_dx_root_set_last_eb_blk(struct ocfs2_extent_tree *et, in ocfs2_dx_root_set_last_eb_blk() argument
346 struct ocfs2_dx_root_block *dx_root = et->et_object; in ocfs2_dx_root_set_last_eb_blk()
351 static u64 ocfs2_dx_root_get_last_eb_blk(struct ocfs2_extent_tree *et) in ocfs2_dx_root_get_last_eb_blk() argument
353 struct ocfs2_dx_root_block *dx_root = et->et_object; in ocfs2_dx_root_get_last_eb_blk()
358 static void ocfs2_dx_root_update_clusters(struct ocfs2_extent_tree *et, in ocfs2_dx_root_update_clusters() argument
361 struct ocfs2_dx_root_block *dx_root = et->et_object; in ocfs2_dx_root_update_clusters()
366 static int ocfs2_dx_root_sanity_check(struct ocfs2_extent_tree *et) in ocfs2_dx_root_sanity_check() argument
368 struct ocfs2_dx_root_block *dx_root = et->et_object; in ocfs2_dx_root_sanity_check()
375 static void ocfs2_dx_root_fill_root_el(struct ocfs2_extent_tree *et) in ocfs2_dx_root_fill_root_el() argument
377 struct ocfs2_dx_root_block *dx_root = et->et_object; in ocfs2_dx_root_fill_root_el()
379 et->et_root_el = &dx_root->dr_list; in ocfs2_dx_root_fill_root_el()
390 static void ocfs2_refcount_tree_fill_root_el(struct ocfs2_extent_tree *et) in ocfs2_refcount_tree_fill_root_el() argument
392 struct ocfs2_refcount_block *rb = et->et_object; in ocfs2_refcount_tree_fill_root_el()
394 et->et_root_el = &rb->rf_list; in ocfs2_refcount_tree_fill_root_el()
397 static void ocfs2_refcount_tree_set_last_eb_blk(struct ocfs2_extent_tree *et, in ocfs2_refcount_tree_set_last_eb_blk() argument
400 struct ocfs2_refcount_block *rb = et->et_object; in ocfs2_refcount_tree_set_last_eb_blk()
405 static u64 ocfs2_refcount_tree_get_last_eb_blk(struct ocfs2_extent_tree *et) in ocfs2_refcount_tree_get_last_eb_blk() argument
407 struct ocfs2_refcount_block *rb = et->et_object; in ocfs2_refcount_tree_get_last_eb_blk()
412 static void ocfs2_refcount_tree_update_clusters(struct ocfs2_extent_tree *et, in ocfs2_refcount_tree_update_clusters() argument
415 struct ocfs2_refcount_block *rb = et->et_object; in ocfs2_refcount_tree_update_clusters()
421 ocfs2_refcount_tree_extent_contig(struct ocfs2_extent_tree *et, in ocfs2_refcount_tree_extent_contig() argument
436 static void __ocfs2_init_extent_tree(struct ocfs2_extent_tree *et, in __ocfs2_init_extent_tree() argument
443 et->et_ops = ops; in __ocfs2_init_extent_tree()
444 et->et_root_bh = bh; in __ocfs2_init_extent_tree()
445 et->et_ci = ci; in __ocfs2_init_extent_tree()
446 et->et_root_journal_access = access; in __ocfs2_init_extent_tree()
449 et->et_object = obj; in __ocfs2_init_extent_tree()
451 et->et_ops->eo_fill_root_el(et); in __ocfs2_init_extent_tree()
452 if (!et->et_ops->eo_fill_max_leaf_clusters) in __ocfs2_init_extent_tree()
453 et->et_max_leaf_clusters = 0; in __ocfs2_init_extent_tree()
455 et->et_ops->eo_fill_max_leaf_clusters(et); in __ocfs2_init_extent_tree()
458 void ocfs2_init_dinode_extent_tree(struct ocfs2_extent_tree *et, in ocfs2_init_dinode_extent_tree() argument
462 __ocfs2_init_extent_tree(et, ci, bh, ocfs2_journal_access_di, in ocfs2_init_dinode_extent_tree()
466 void ocfs2_init_xattr_tree_extent_tree(struct ocfs2_extent_tree *et, in ocfs2_init_xattr_tree_extent_tree() argument
470 __ocfs2_init_extent_tree(et, ci, bh, ocfs2_journal_access_xb, in ocfs2_init_xattr_tree_extent_tree()
474 void ocfs2_init_xattr_value_extent_tree(struct ocfs2_extent_tree *et, in ocfs2_init_xattr_value_extent_tree() argument
478 __ocfs2_init_extent_tree(et, ci, vb->vb_bh, vb->vb_access, vb, in ocfs2_init_xattr_value_extent_tree()
482 void ocfs2_init_dx_root_extent_tree(struct ocfs2_extent_tree *et, in ocfs2_init_dx_root_extent_tree() argument
486 __ocfs2_init_extent_tree(et, ci, bh, ocfs2_journal_access_dr, in ocfs2_init_dx_root_extent_tree()
490 void ocfs2_init_refcount_extent_tree(struct ocfs2_extent_tree *et, in ocfs2_init_refcount_extent_tree() argument
494 __ocfs2_init_extent_tree(et, ci, bh, ocfs2_journal_access_rb, in ocfs2_init_refcount_extent_tree()
498 static inline void ocfs2_et_set_last_eb_blk(struct ocfs2_extent_tree *et, in ocfs2_et_set_last_eb_blk() argument
501 et->et_ops->eo_set_last_eb_blk(et, new_last_eb_blk); in ocfs2_et_set_last_eb_blk()
504 static inline u64 ocfs2_et_get_last_eb_blk(struct ocfs2_extent_tree *et) in ocfs2_et_get_last_eb_blk() argument
506 return et->et_ops->eo_get_last_eb_blk(et); in ocfs2_et_get_last_eb_blk()
509 static inline void ocfs2_et_update_clusters(struct ocfs2_extent_tree *et, in ocfs2_et_update_clusters() argument
512 et->et_ops->eo_update_clusters(et, clusters); in ocfs2_et_update_clusters()
515 static inline void ocfs2_et_extent_map_insert(struct ocfs2_extent_tree *et, in ocfs2_et_extent_map_insert() argument
518 if (et->et_ops->eo_extent_map_insert) in ocfs2_et_extent_map_insert()
519 et->et_ops->eo_extent_map_insert(et, rec); in ocfs2_et_extent_map_insert()
522 static inline void ocfs2_et_extent_map_truncate(struct ocfs2_extent_tree *et, in ocfs2_et_extent_map_truncate() argument
525 if (et->et_ops->eo_extent_map_truncate) in ocfs2_et_extent_map_truncate()
526 et->et_ops->eo_extent_map_truncate(et, clusters); in ocfs2_et_extent_map_truncate()
530 struct ocfs2_extent_tree *et, in ocfs2_et_root_journal_access() argument
533 return et->et_root_journal_access(handle, et->et_ci, et->et_root_bh, in ocfs2_et_root_journal_access()
538 ocfs2_et_extent_contig(struct ocfs2_extent_tree *et, in ocfs2_et_extent_contig() argument
542 if (et->et_ops->eo_extent_contig) in ocfs2_et_extent_contig()
543 return et->et_ops->eo_extent_contig(et, rec, insert_rec); in ocfs2_et_extent_contig()
546 ocfs2_metadata_cache_get_super(et->et_ci), in ocfs2_et_extent_contig()
550 static inline int ocfs2_et_insert_check(struct ocfs2_extent_tree *et, in ocfs2_et_insert_check() argument
555 if (et->et_ops->eo_insert_check) in ocfs2_et_insert_check()
556 ret = et->et_ops->eo_insert_check(et, rec); in ocfs2_et_insert_check()
560 static inline int ocfs2_et_sanity_check(struct ocfs2_extent_tree *et) in ocfs2_et_sanity_check() argument
564 if (et->et_ops->eo_sanity_check) in ocfs2_et_sanity_check()
565 ret = et->et_ops->eo_sanity_check(et); in ocfs2_et_sanity_check()
572 struct ocfs2_extent_tree *et,
713 struct ocfs2_path *ocfs2_new_path_from_et(struct ocfs2_extent_tree *et) in ocfs2_new_path_from_et() argument
715 return ocfs2_new_path(et->et_root_bh, et->et_root_el, in ocfs2_new_path_from_et()
716 et->et_root_journal_access); in ocfs2_new_path_from_et()
960 struct ocfs2_extent_tree *et) in ocfs2_num_free_extents() argument
968 el = et->et_root_el; in ocfs2_num_free_extents()
969 last_eb_blk = ocfs2_et_get_last_eb_blk(et); in ocfs2_num_free_extents()
972 retval = ocfs2_read_extent_block(et->et_ci, last_eb_blk, in ocfs2_num_free_extents()
998 struct ocfs2_extent_tree *et, in ocfs2_create_new_meta_bhs() argument
1008 OCFS2_SB(ocfs2_metadata_cache_get_super(et->et_ci)); in ocfs2_create_new_meta_bhs()
1032 ocfs2_set_new_buffer_uptodate(et->et_ci, bhs[i]); in ocfs2_create_new_meta_bhs()
1034 status = ocfs2_journal_access_eb(handle, et->et_ci, in ocfs2_create_new_meta_bhs()
1105 struct ocfs2_extent_tree *et) in ocfs2_adjust_rightmost_branch() argument
1112 path = ocfs2_new_path_from_et(et); in ocfs2_adjust_rightmost_branch()
1118 status = ocfs2_find_path(et->et_ci, path, UINT_MAX); in ocfs2_adjust_rightmost_branch()
1130 status = ocfs2_journal_access_path(et->et_ci, handle, path); in ocfs2_adjust_rightmost_branch()
1139 ocfs2_adjust_rightmost_records(handle, et, path, rec); in ocfs2_adjust_rightmost_branch()
1158 struct ocfs2_extent_tree *et, in ocfs2_add_branch() argument
1178 el = et->et_root_el; in ocfs2_add_branch()
1187 root_end = ocfs2_sum_rightmost_rec(et->et_root_el); in ocfs2_add_branch()
1199 ocfs2_metadata_cache_owner(et->et_ci), in ocfs2_add_branch()
1202 status = ocfs2_adjust_rightmost_branch(handle, et); in ocfs2_add_branch()
1218 status = ocfs2_create_new_meta_bhs(handle, et, new_blocks, in ocfs2_add_branch()
1240 status = ocfs2_journal_access_eb(handle, et->et_ci, bh, in ocfs2_add_branch()
1275 status = ocfs2_journal_access_eb(handle, et->et_ci, *last_eb_bh, in ocfs2_add_branch()
1281 status = ocfs2_et_root_journal_access(handle, et, in ocfs2_add_branch()
1288 status = ocfs2_journal_access_eb(handle, et->et_ci, eb_bh, in ocfs2_add_branch()
1306 ocfs2_et_set_last_eb_blk(et, new_last_eb_blk); in ocfs2_add_branch()
1312 ocfs2_journal_dirty(handle, et->et_root_bh); in ocfs2_add_branch()
1341 struct ocfs2_extent_tree *et, in ocfs2_shift_tree_depth() argument
1352 status = ocfs2_create_new_meta_bhs(handle, et, 1, meta_ac, in ocfs2_shift_tree_depth()
1364 root_el = et->et_root_el; in ocfs2_shift_tree_depth()
1366 status = ocfs2_journal_access_eb(handle, et->et_ci, new_eb_bh, in ocfs2_shift_tree_depth()
1381 status = ocfs2_et_root_journal_access(handle, et, in ocfs2_shift_tree_depth()
1402 ocfs2_et_set_last_eb_blk(et, le64_to_cpu(eb->h_blkno)); in ocfs2_shift_tree_depth()
1404 ocfs2_journal_dirty(handle, et->et_root_bh); in ocfs2_shift_tree_depth()
1432 static int ocfs2_find_branch_target(struct ocfs2_extent_tree *et, in ocfs2_find_branch_target() argument
1444 el = et->et_root_el; in ocfs2_find_branch_target()
1448 ocfs2_error(ocfs2_metadata_cache_get_super(et->et_ci), in ocfs2_find_branch_target()
1451 (unsigned long long)ocfs2_metadata_cache_owner(et->et_ci)); in ocfs2_find_branch_target()
1458 ocfs2_error(ocfs2_metadata_cache_get_super(et->et_ci), in ocfs2_find_branch_target()
1462 (unsigned long long)ocfs2_metadata_cache_owner(et->et_ci), i); in ocfs2_find_branch_target()
1470 status = ocfs2_read_extent_block(et->et_ci, blkno, &bh); in ocfs2_find_branch_target()
1489 el = et->et_root_el; in ocfs2_find_branch_target()
1510 static int ocfs2_grow_tree(handle_t *handle, struct ocfs2_extent_tree *et, in ocfs2_grow_tree() argument
1515 struct ocfs2_extent_list *el = et->et_root_el; in ocfs2_grow_tree()
1521 shift = ocfs2_find_branch_target(et, &bh); in ocfs2_grow_tree()
1535 ocfs2_metadata_cache_owner(et->et_ci), in ocfs2_grow_tree()
1541 ret = ocfs2_shift_tree_depth(handle, et, meta_ac, &bh); in ocfs2_grow_tree()
1566 ret = ocfs2_add_branch(handle, et, bh, last_eb_bh, in ocfs2_grow_tree()
1737 int ocfs2_find_subtree_root(struct ocfs2_extent_tree *et, in ocfs2_find_subtree_root() argument
1757 (unsigned long long)ocfs2_metadata_cache_owner(et->et_ci), in ocfs2_find_subtree_root()
2102 struct ocfs2_extent_tree *et, in ocfs2_rotate_subtree_right() argument
2118 ocfs2_error(ocfs2_metadata_cache_get_super(et->et_ci), in ocfs2_rotate_subtree_right()
2121 (unsigned long long)ocfs2_metadata_cache_owner(et->et_ci), in ocfs2_rotate_subtree_right()
2137 ret = ocfs2_path_bh_journal_access(handle, et->et_ci, right_path, in ocfs2_rotate_subtree_right()
2145 ret = ocfs2_path_bh_journal_access(handle, et->et_ci, in ocfs2_rotate_subtree_right()
2152 ret = ocfs2_path_bh_journal_access(handle, et->et_ci, in ocfs2_rotate_subtree_right()
2166 (unsigned long long)ocfs2_metadata_cache_owner(et->et_ci), in ocfs2_rotate_subtree_right()
2359 struct ocfs2_extent_tree *et, in ocfs2_rotate_tree_right() argument
2368 struct super_block *sb = ocfs2_metadata_cache_get_super(et->et_ci); in ocfs2_rotate_tree_right()
2386 (unsigned long long)ocfs2_metadata_cache_owner(et->et_ci), in ocfs2_rotate_tree_right()
2418 ocfs2_metadata_cache_owner(et->et_ci), in ocfs2_rotate_tree_right()
2421 ret = ocfs2_find_path(et->et_ci, left_path, cpos); in ocfs2_rotate_tree_right()
2432 (unsigned long long)ocfs2_metadata_cache_owner(et->et_ci), in ocfs2_rotate_tree_right()
2459 start = ocfs2_find_subtree_root(et, left_path, right_path); in ocfs2_rotate_tree_right()
2473 ret = ocfs2_rotate_subtree_right(handle, et, left_path, in ocfs2_rotate_tree_right()
2520 struct ocfs2_extent_tree *et, in ocfs2_update_edge_lengths() argument
2544 ret = ocfs2_journal_access_path(et->et_ci, handle, path); in ocfs2_update_edge_lengths()
2575 struct ocfs2_extent_tree *et, in ocfs2_unlink_path() argument
2597 (unsigned long long)ocfs2_metadata_cache_owner(et->et_ci), in ocfs2_unlink_path()
2602 ocfs2_remove_from_cache(et->et_ci, bh); in ocfs2_unlink_path()
2615 ocfs2_remove_from_cache(et->et_ci, bh); in ocfs2_unlink_path()
2620 struct ocfs2_extent_tree *et, in ocfs2_unlink_subtree() argument
2651 ocfs2_unlink_path(handle, et, dealloc, right_path, in ocfs2_unlink_subtree()
2656 struct ocfs2_extent_tree *et, in ocfs2_rotate_subtree_left() argument
2697 ret = ocfs2_journal_access_eb(handle, et->et_ci, in ocfs2_rotate_subtree_left()
2716 ret = ocfs2_et_root_journal_access(handle, et, in ocfs2_rotate_subtree_left()
2732 ret = ocfs2_path_bh_journal_access(handle, et->et_ci, right_path, in ocfs2_rotate_subtree_left()
2740 ret = ocfs2_path_bh_journal_access(handle, et->et_ci, in ocfs2_rotate_subtree_left()
2747 ret = ocfs2_path_bh_journal_access(handle, et->et_ci, in ocfs2_rotate_subtree_left()
2780 ocfs2_unlink_subtree(handle, et, left_path, right_path, in ocfs2_rotate_subtree_left()
2782 ret = ocfs2_update_edge_lengths(handle, et, subtree_index, in ocfs2_rotate_subtree_left()
2790 ocfs2_et_set_last_eb_blk(et, le64_to_cpu(eb->h_blkno)); in ocfs2_rotate_subtree_left()
2891 struct ocfs2_extent_tree *et, in ocfs2_rotate_rightmost_leaf_left() argument
2901 ret = ocfs2_path_bh_journal_access(handle, et->et_ci, path, in ocfs2_rotate_rightmost_leaf_left()
2916 struct ocfs2_extent_tree *et, in __ocfs2_rotate_tree_left() argument
2926 struct super_block *sb = ocfs2_metadata_cache_get_super(et->et_ci); in __ocfs2_rotate_tree_left()
2955 ret = ocfs2_find_path(et->et_ci, right_path, right_cpos); in __ocfs2_rotate_tree_left()
2961 subtree_root = ocfs2_find_subtree_root(et, left_path, in __ocfs2_rotate_tree_left()
2980 ret = ocfs2_path_bh_journal_access(handle, et->et_ci, in __ocfs2_rotate_tree_left()
2987 ret = ocfs2_rotate_subtree_left(handle, et, left_path, in __ocfs2_rotate_tree_left()
3032 struct ocfs2_extent_tree *et, in ocfs2_remove_rightmost_path() argument
3043 ret = ocfs2_et_sanity_check(et); in ocfs2_remove_rightmost_path()
3058 ret = ocfs2_journal_access_path(et->et_ci, handle, path); in ocfs2_remove_rightmost_path()
3064 ret = ocfs2_find_cpos_for_left_leaf(ocfs2_metadata_cache_get_super(et->et_ci), in ocfs2_remove_rightmost_path()
3083 ret = ocfs2_find_path(et->et_ci, left_path, cpos); in ocfs2_remove_rightmost_path()
3089 ret = ocfs2_journal_access_path(et->et_ci, handle, left_path); in ocfs2_remove_rightmost_path()
3095 subtree_index = ocfs2_find_subtree_root(et, left_path, path); in ocfs2_remove_rightmost_path()
3097 ocfs2_unlink_subtree(handle, et, left_path, path, in ocfs2_remove_rightmost_path()
3099 ret = ocfs2_update_edge_lengths(handle, et, subtree_index, in ocfs2_remove_rightmost_path()
3107 ocfs2_et_set_last_eb_blk(et, le64_to_cpu(eb->h_blkno)); in ocfs2_remove_rightmost_path()
3116 ocfs2_unlink_path(handle, et, dealloc, path, 1); in ocfs2_remove_rightmost_path()
3118 el = et->et_root_el; in ocfs2_remove_rightmost_path()
3123 ocfs2_et_set_last_eb_blk(et, 0); in ocfs2_remove_rightmost_path()
3150 struct ocfs2_extent_tree *et, in ocfs2_rotate_tree_left() argument
3169 ret = ocfs2_rotate_rightmost_leaf_left(handle, et, path); in ocfs2_rotate_tree_left()
3201 ocfs2_error(ocfs2_metadata_cache_get_super(et->et_ci), in ocfs2_rotate_tree_left()
3203 (unsigned long long)ocfs2_metadata_cache_owner(et->et_ci), in ocfs2_rotate_tree_left()
3217 ret = ocfs2_remove_rightmost_path(handle, et, path, in ocfs2_rotate_tree_left()
3229 ret = __ocfs2_rotate_tree_left(handle, et, orig_credits, path, in ocfs2_rotate_tree_left()
3240 ret = __ocfs2_rotate_tree_left(handle, et, orig_credits, in ocfs2_rotate_tree_left()
3293 static int ocfs2_get_right_path(struct ocfs2_extent_tree *et, in ocfs2_get_right_path() argument
3310 ret = ocfs2_find_cpos_for_right_leaf(ocfs2_metadata_cache_get_super(et->et_ci), in ocfs2_get_right_path()
3327 ret = ocfs2_find_path(et->et_ci, right_path, right_cpos); in ocfs2_get_right_path()
3349 struct ocfs2_extent_tree *et, in ocfs2_merge_rec_right() argument
3370 ret = ocfs2_get_right_path(et, left_path, &right_path); in ocfs2_merge_rec_right()
3389 subtree_index = ocfs2_find_subtree_root(et, left_path, in ocfs2_merge_rec_right()
3403 ret = ocfs2_path_bh_journal_access(handle, et->et_ci, right_path, in ocfs2_merge_rec_right()
3412 ret = ocfs2_path_bh_journal_access(handle, et->et_ci, in ocfs2_merge_rec_right()
3419 ret = ocfs2_path_bh_journal_access(handle, et->et_ci, in ocfs2_merge_rec_right()
3432 ret = ocfs2_path_bh_journal_access(handle, et->et_ci, left_path, in ocfs2_merge_rec_right()
3443 -ocfs2_clusters_to_blocks(ocfs2_metadata_cache_get_super(et->et_ci), in ocfs2_merge_rec_right()
3460 static int ocfs2_get_left_path(struct ocfs2_extent_tree *et, in ocfs2_get_left_path() argument
3473 ret = ocfs2_find_cpos_for_left_leaf(ocfs2_metadata_cache_get_super(et->et_ci), in ocfs2_get_left_path()
3490 ret = ocfs2_find_path(et->et_ci, left_path, left_cpos); in ocfs2_get_left_path()
3515 struct ocfs2_extent_tree *et, in ocfs2_merge_rec_left() argument
3535 ret = ocfs2_get_left_path(et, right_path, &left_path); in ocfs2_merge_rec_left()
3551 subtree_index = ocfs2_find_subtree_root(et, left_path, in ocfs2_merge_rec_left()
3565 ret = ocfs2_path_bh_journal_access(handle, et->et_ci, right_path, in ocfs2_merge_rec_left()
3574 ret = ocfs2_path_bh_journal_access(handle, et->et_ci, in ocfs2_merge_rec_left()
3581 ret = ocfs2_path_bh_journal_access(handle, et->et_ci, in ocfs2_merge_rec_left()
3594 ret = ocfs2_path_bh_journal_access(handle, et->et_ci, right_path, in ocfs2_merge_rec_left()
3613 ocfs2_clusters_to_blocks(ocfs2_metadata_cache_get_super(et->et_ci), in ocfs2_merge_rec_left()
3631 ret = ocfs2_remove_rightmost_path(handle, et, in ocfs2_merge_rec_left()
3654 struct ocfs2_extent_tree *et, in ocfs2_try_to_merge_extent() argument
3675 ret = ocfs2_rotate_tree_left(handle, et, path, dealloc); in ocfs2_try_to_merge_extent()
3704 ret = ocfs2_merge_rec_right(path, handle, et, split_rec, in ocfs2_try_to_merge_extent()
3717 ret = ocfs2_rotate_tree_left(handle, et, path, dealloc); in ocfs2_try_to_merge_extent()
3729 ret = ocfs2_merge_rec_left(path, handle, et, rec, in ocfs2_try_to_merge_extent()
3737 ret = ocfs2_rotate_tree_left(handle, et, path, dealloc); in ocfs2_try_to_merge_extent()
3754 ret = ocfs2_merge_rec_left(path, handle, et, in ocfs2_try_to_merge_extent()
3763 et, split_rec, in ocfs2_try_to_merge_extent()
3776 ret = ocfs2_rotate_tree_left(handle, et, path, in ocfs2_try_to_merge_extent()
3823 static void ocfs2_insert_at_leaf(struct ocfs2_extent_tree *et, in ocfs2_insert_at_leaf() argument
3838 ocfs2_subtract_from_rec(ocfs2_metadata_cache_get_super(et->et_ci), in ocfs2_insert_at_leaf()
3884 ocfs2_metadata_cache_owner(et->et_ci), in ocfs2_insert_at_leaf()
3913 struct ocfs2_extent_tree *et, in ocfs2_adjust_rightmost_records() argument
3931 ocfs2_error(ocfs2_metadata_cache_get_super(et->et_ci), in ocfs2_adjust_rightmost_records()
3933 (unsigned long long)ocfs2_metadata_cache_owner(et->et_ci)); in ocfs2_adjust_rightmost_records()
3951 struct ocfs2_extent_tree *et, in ocfs2_append_rec_to_path() argument
3979 ret = ocfs2_find_cpos_for_left_leaf(ocfs2_metadata_cache_get_super(et->et_ci), in ocfs2_append_rec_to_path()
3988 ocfs2_metadata_cache_owner(et->et_ci), in ocfs2_append_rec_to_path()
4004 ret = ocfs2_find_path(et->et_ci, left_path, in ocfs2_append_rec_to_path()
4018 ret = ocfs2_journal_access_path(et->et_ci, handle, right_path); in ocfs2_append_rec_to_path()
4024 ocfs2_adjust_rightmost_records(handle, et, right_path, insert_rec); in ocfs2_append_rec_to_path()
4035 static void ocfs2_split_record(struct ocfs2_extent_tree *et, in ocfs2_split_record() argument
4108 ocfs2_subtract_from_rec(ocfs2_metadata_cache_get_super(et->et_ci), in ocfs2_split_record()
4122 struct ocfs2_extent_tree *et, in ocfs2_insert_path() argument
4144 ret = ocfs2_journal_access_path(et->et_ci, handle, left_path); in ocfs2_insert_path()
4155 ret = ocfs2_journal_access_path(et->et_ci, handle, right_path); in ocfs2_insert_path()
4167 ocfs2_split_record(et, left_path, right_path, in ocfs2_insert_path()
4179 ocfs2_insert_at_leaf(et, insert_rec, path_leaf_el(right_path), in ocfs2_insert_path()
4191 subtree_index = ocfs2_find_subtree_root(et, left_path, in ocfs2_insert_path()
4203 struct ocfs2_extent_tree *et, in ocfs2_do_insert_extent() argument
4213 el = et->et_root_el; in ocfs2_do_insert_extent()
4215 ret = ocfs2_et_root_journal_access(handle, et, in ocfs2_do_insert_extent()
4223 ocfs2_insert_at_leaf(et, insert_rec, el, type); in ocfs2_do_insert_extent()
4227 right_path = ocfs2_new_path_from_et(et); in ocfs2_do_insert_extent()
4246 ret = ocfs2_find_path(et->et_ci, right_path, cpos); in ocfs2_do_insert_extent()
4265 ret = ocfs2_rotate_tree_right(handle, et, type->ins_split, in ocfs2_do_insert_extent()
4277 ret = ocfs2_et_root_journal_access(handle, et, in ocfs2_do_insert_extent()
4285 ret = ocfs2_append_rec_to_path(handle, et, insert_rec, in ocfs2_do_insert_extent()
4293 ret = ocfs2_insert_path(handle, et, left_path, right_path, in ocfs2_do_insert_extent()
4302 ocfs2_et_update_clusters(et, in ocfs2_do_insert_extent()
4305 ocfs2_journal_dirty(handle, et->et_root_bh); in ocfs2_do_insert_extent()
4315 ocfs2_figure_merge_contig_type(struct ocfs2_extent_tree *et, in ocfs2_figure_merge_contig_type() argument
4328 struct super_block *sb = ocfs2_metadata_cache_get_super(et->et_ci); in ocfs2_figure_merge_contig_type()
4342 status = ocfs2_find_path(et->et_ci, left_path, in ocfs2_figure_merge_contig_type()
4378 ret = ocfs2_et_extent_contig(et, rec, split_rec); in ocfs2_figure_merge_contig_type()
4398 status = ocfs2_find_path(et->et_ci, right_path, right_cpos); in ocfs2_figure_merge_contig_type()
4423 contig_type = ocfs2_et_extent_contig(et, rec, split_rec); in ocfs2_figure_merge_contig_type()
4439 static void ocfs2_figure_contig_type(struct ocfs2_extent_tree *et, in ocfs2_figure_contig_type() argument
4450 contig_type = ocfs2_et_extent_contig(et, &el->l_recs[i], in ocfs2_figure_contig_type()
4469 if (et->et_max_leaf_clusters && in ocfs2_figure_contig_type()
4470 (len > et->et_max_leaf_clusters)) in ocfs2_figure_contig_type()
4532 static int ocfs2_figure_insert_type(struct ocfs2_extent_tree *et, in ocfs2_figure_insert_type() argument
4546 el = et->et_root_el; in ocfs2_figure_insert_type()
4556 ret = ocfs2_read_extent_block(et->et_ci, in ocfs2_figure_insert_type()
4557 ocfs2_et_get_last_eb_blk(et), in ocfs2_figure_insert_type()
4579 ocfs2_figure_contig_type(et, insert, el, insert_rec); in ocfs2_figure_insert_type()
4584 path = ocfs2_new_path_from_et(et); in ocfs2_figure_insert_type()
4597 ret = ocfs2_find_path(et->et_ci, path, le32_to_cpu(insert_rec->e_cpos)); in ocfs2_figure_insert_type()
4613 ocfs2_figure_contig_type(et, insert, el, insert_rec); in ocfs2_figure_insert_type()
4634 if (ocfs2_et_get_last_eb_blk(et) == in ocfs2_figure_insert_type()
4663 struct ocfs2_extent_tree *et, in ocfs2_insert_extent() argument
4677 (unsigned long long)ocfs2_metadata_cache_owner(et->et_ci), in ocfs2_insert_extent()
4685 status = ocfs2_et_insert_check(et, &rec); in ocfs2_insert_extent()
4691 status = ocfs2_figure_insert_type(et, &last_eb_bh, &rec, in ocfs2_insert_extent()
4703 status = ocfs2_grow_tree(handle, et, in ocfs2_insert_extent()
4713 status = ocfs2_do_insert_extent(handle, et, &rec, &insert); in ocfs2_insert_extent()
4717 ocfs2_et_extent_map_insert(et, &rec); in ocfs2_insert_extent()
4733 struct ocfs2_extent_tree *et, in ocfs2_add_clusters_in_btree() argument
4749 OCFS2_SB(ocfs2_metadata_cache_get_super(et->et_ci)); in ocfs2_add_clusters_in_btree()
4756 free_extents = ocfs2_num_free_extents(osb, et); in ocfs2_add_clusters_in_btree()
4775 < ocfs2_extend_meta_needed(et->et_root_el))) { in ocfs2_add_clusters_in_btree()
4793 status = ocfs2_et_root_journal_access(handle, et, in ocfs2_add_clusters_in_btree()
4803 (unsigned long long)ocfs2_metadata_cache_owner(et->et_ci), in ocfs2_add_clusters_in_btree()
4805 status = ocfs2_insert_extent(handle, et, *logical_offset, block, in ocfs2_add_clusters_in_btree()
4813 ocfs2_journal_dirty(handle, et->et_root_bh); in ocfs2_add_clusters_in_btree()
4865 struct ocfs2_extent_tree *et, in ocfs2_split_and_insert() argument
4888 rightmost_el = et->et_root_el; in ocfs2_split_and_insert()
4899 ret = ocfs2_grow_tree(handle, et, in ocfs2_split_and_insert()
4928 ocfs2_make_right_split_rec(ocfs2_metadata_cache_get_super(et->et_ci), in ocfs2_split_and_insert()
4937 ret = ocfs2_do_insert_extent(handle, et, &split_rec, &insert); in ocfs2_split_and_insert()
4953 ret = ocfs2_find_path(et->et_ci, path, cpos); in ocfs2_split_and_insert()
4962 ocfs2_error(ocfs2_metadata_cache_get_super(et->et_ci), in ocfs2_split_and_insert()
4965 (unsigned long long)ocfs2_metadata_cache_owner(et->et_ci), in ocfs2_split_and_insert()
4978 struct ocfs2_extent_tree *et, in ocfs2_replace_extent_rec() argument
4986 ret = ocfs2_path_bh_journal_access(handle, et->et_ci, path, in ocfs2_replace_extent_rec()
5020 struct ocfs2_extent_tree *et, in ocfs2_split_extent() argument
5042 ctxt.c_contig_type = ocfs2_figure_merge_contig_type(et, path, el, in ocfs2_split_extent()
5054 ret = ocfs2_read_extent_block(et->et_ci, in ocfs2_split_extent()
5055 ocfs2_et_get_last_eb_blk(et), in ocfs2_split_extent()
5081 ret = ocfs2_replace_extent_rec(handle, et, path, el, in ocfs2_split_extent()
5084 ret = ocfs2_split_and_insert(handle, et, path, in ocfs2_split_extent()
5090 ret = ocfs2_try_to_merge_extent(handle, et, path, in ocfs2_split_extent()
5115 struct ocfs2_extent_tree *et, in ocfs2_change_extent_flag() argument
5122 struct super_block *sb = ocfs2_metadata_cache_get_super(et->et_ci); in ocfs2_change_extent_flag()
5129 left_path = ocfs2_new_path_from_et(et); in ocfs2_change_extent_flag()
5136 ret = ocfs2_find_path(et->et_ci, left_path, cpos); in ocfs2_change_extent_flag()
5149 ocfs2_metadata_cache_owner(et->et_ci), cpos); in ocfs2_change_extent_flag()
5159 (unsigned long long)ocfs2_metadata_cache_owner(et->et_ci), in ocfs2_change_extent_flag()
5167 (unsigned long long)ocfs2_metadata_cache_owner(et->et_ci), in ocfs2_change_extent_flag()
5182 ret = ocfs2_split_extent(handle, et, left_path, in ocfs2_change_extent_flag()
5204 struct ocfs2_extent_tree *et, in ocfs2_mark_extent_written() argument
5228 ocfs2_et_extent_map_truncate(et, 0); in ocfs2_mark_extent_written()
5230 ret = ocfs2_change_extent_flag(handle, et, cpos, in ocfs2_mark_extent_written()
5240 static int ocfs2_split_tree(handle_t *handle, struct ocfs2_extent_tree *et, in ocfs2_split_tree() argument
5258 ocfs2_make_right_split_rec(ocfs2_metadata_cache_get_super(et->et_ci), in ocfs2_split_tree()
5263 ret = ocfs2_read_extent_block(et->et_ci, in ocfs2_split_tree()
5264 ocfs2_et_get_last_eb_blk(et), in ocfs2_split_tree()
5277 ocfs2_extend_meta_needed(et->et_root_el); in ocfs2_split_tree()
5286 ret = ocfs2_grow_tree(handle, et, &depth, &last_eb_bh, in ocfs2_split_tree()
5300 ret = ocfs2_do_insert_extent(handle, et, &split_rec, &insert); in ocfs2_split_tree()
5310 struct ocfs2_extent_tree *et, in ocfs2_truncate_rec() argument
5318 struct super_block *sb = ocfs2_metadata_cache_get_super(et->et_ci); in ocfs2_truncate_rec()
5325 ret = ocfs2_rotate_tree_left(handle, et, path, dealloc); in ocfs2_truncate_rec()
5377 ret = ocfs2_find_path(et->et_ci, left_path, in ocfs2_truncate_rec()
5394 ret = ocfs2_journal_access_path(et->et_ci, handle, path); in ocfs2_truncate_rec()
5400 ret = ocfs2_journal_access_path(et->et_ci, handle, left_path); in ocfs2_truncate_rec()
5423 ocfs2_adjust_rightmost_records(handle, et, path, in ocfs2_truncate_rec()
5435 ocfs2_adjust_rightmost_records(handle, et, path, rec); in ocfs2_truncate_rec()
5440 (unsigned long long)ocfs2_metadata_cache_owner(et->et_ci), in ocfs2_truncate_rec()
5449 subtree_index = ocfs2_find_subtree_root(et, left_path, path); in ocfs2_truncate_rec()
5456 ret = ocfs2_rotate_tree_left(handle, et, path, dealloc); in ocfs2_truncate_rec()
5468 struct ocfs2_extent_tree *et, in ocfs2_remove_extent() argument
5483 ocfs2_et_extent_map_truncate(et, 0); in ocfs2_remove_extent()
5485 path = ocfs2_new_path_from_et(et); in ocfs2_remove_extent()
5492 ret = ocfs2_find_path(et->et_ci, path, cpos); in ocfs2_remove_extent()
5501 ocfs2_error(ocfs2_metadata_cache_get_super(et->et_ci), in ocfs2_remove_extent()
5504 (unsigned long long)ocfs2_metadata_cache_owner(et->et_ci), in ocfs2_remove_extent()
5533 (unsigned long long)ocfs2_metadata_cache_owner(et->et_ci), in ocfs2_remove_extent()
5538 ret = ocfs2_truncate_rec(handle, et, path, index, dealloc, in ocfs2_remove_extent()
5545 ret = ocfs2_split_tree(handle, et, path, index, in ocfs2_remove_extent()
5558 ret = ocfs2_find_path(et->et_ci, path, cpos); in ocfs2_remove_extent()
5567 ocfs2_error(ocfs2_metadata_cache_get_super(et->et_ci), in ocfs2_remove_extent()
5569 (unsigned long long)ocfs2_metadata_cache_owner(et->et_ci), in ocfs2_remove_extent()
5583 ocfs2_error(ocfs2_metadata_cache_get_super(et->et_ci), in ocfs2_remove_extent()
5586 (unsigned long long)ocfs2_metadata_cache_owner(et->et_ci), in ocfs2_remove_extent()
5593 ret = ocfs2_truncate_rec(handle, et, path, index, dealloc, in ocfs2_remove_extent()
5616 struct ocfs2_extent_tree *et, in ocfs2_reserve_blocks_for_rec_trunc() argument
5627 num_free_extents = ocfs2_num_free_extents(osb, et); in ocfs2_reserve_blocks_for_rec_trunc()
5636 extra_blocks += ocfs2_extend_meta_needed(et->et_root_el); in ocfs2_reserve_blocks_for_rec_trunc()
5659 struct ocfs2_extent_tree *et, in ocfs2_remove_btree_range() argument
5697 ret = ocfs2_reserve_blocks_for_rec_trunc(inode, et, 1, &meta_ac, in ocfs2_remove_btree_range()
5722 ret = ocfs2_et_root_journal_access(handle, et, in ocfs2_remove_btree_range()
5732 ret = ocfs2_remove_extent(handle, et, cpos, len, meta_ac, dealloc); in ocfs2_remove_btree_range()
5738 ocfs2_et_update_clusters(et, -len); in ocfs2_remove_btree_range()
5741 ocfs2_journal_dirty(handle, et->et_root_bh); in ocfs2_remove_btree_range()
6847 struct ocfs2_extent_tree et; in ocfs2_convert_inline_data_to_extents() local
6959 ocfs2_init_dinode_extent_tree(&et, INODE_CACHE(inode), di_bh); in ocfs2_convert_inline_data_to_extents()
6960 ret = ocfs2_insert_extent(handle, &et, 0, block, 1, 0, NULL); in ocfs2_convert_inline_data_to_extents()
7020 struct ocfs2_extent_tree et; in ocfs2_commit_truncate() local
7024 ocfs2_init_dinode_extent_tree(&et, INODE_CACHE(inode), di_bh); in ocfs2_commit_truncate()
7141 status = ocfs2_remove_btree_range(inode, &et, trunc_cpos, in ocfs2_commit_truncate()