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()
958 struct ocfs2_extent_tree *et) in ocfs2_num_free_extents() argument
966 el = et->et_root_el; in ocfs2_num_free_extents()
967 last_eb_blk = ocfs2_et_get_last_eb_blk(et); in ocfs2_num_free_extents()
970 retval = ocfs2_read_extent_block(et->et_ci, last_eb_blk, in ocfs2_num_free_extents()
996 struct ocfs2_extent_tree *et, in ocfs2_create_new_meta_bhs() argument
1006 OCFS2_SB(ocfs2_metadata_cache_get_super(et->et_ci)); in ocfs2_create_new_meta_bhs()
1030 ocfs2_set_new_buffer_uptodate(et->et_ci, bhs[i]); in ocfs2_create_new_meta_bhs()
1032 status = ocfs2_journal_access_eb(handle, et->et_ci, in ocfs2_create_new_meta_bhs()
1103 struct ocfs2_extent_tree *et) in ocfs2_adjust_rightmost_branch() argument
1110 path = ocfs2_new_path_from_et(et); in ocfs2_adjust_rightmost_branch()
1116 status = ocfs2_find_path(et->et_ci, path, UINT_MAX); in ocfs2_adjust_rightmost_branch()
1128 status = ocfs2_journal_access_path(et->et_ci, handle, path); in ocfs2_adjust_rightmost_branch()
1137 ocfs2_adjust_rightmost_records(handle, et, path, rec); in ocfs2_adjust_rightmost_branch()
1156 struct ocfs2_extent_tree *et, in ocfs2_add_branch() argument
1176 el = et->et_root_el; in ocfs2_add_branch()
1185 root_end = ocfs2_sum_rightmost_rec(et->et_root_el); in ocfs2_add_branch()
1197 ocfs2_metadata_cache_owner(et->et_ci), in ocfs2_add_branch()
1200 status = ocfs2_adjust_rightmost_branch(handle, et); in ocfs2_add_branch()
1216 status = ocfs2_create_new_meta_bhs(handle, et, new_blocks, in ocfs2_add_branch()
1238 status = ocfs2_journal_access_eb(handle, et->et_ci, bh, in ocfs2_add_branch()
1273 status = ocfs2_journal_access_eb(handle, et->et_ci, *last_eb_bh, in ocfs2_add_branch()
1279 status = ocfs2_et_root_journal_access(handle, et, in ocfs2_add_branch()
1286 status = ocfs2_journal_access_eb(handle, et->et_ci, eb_bh, in ocfs2_add_branch()
1304 ocfs2_et_set_last_eb_blk(et, new_last_eb_blk); in ocfs2_add_branch()
1310 ocfs2_journal_dirty(handle, et->et_root_bh); in ocfs2_add_branch()
1339 struct ocfs2_extent_tree *et, in ocfs2_shift_tree_depth() argument
1350 status = ocfs2_create_new_meta_bhs(handle, et, 1, meta_ac, in ocfs2_shift_tree_depth()
1362 root_el = et->et_root_el; in ocfs2_shift_tree_depth()
1364 status = ocfs2_journal_access_eb(handle, et->et_ci, new_eb_bh, in ocfs2_shift_tree_depth()
1379 status = ocfs2_et_root_journal_access(handle, et, in ocfs2_shift_tree_depth()
1400 ocfs2_et_set_last_eb_blk(et, le64_to_cpu(eb->h_blkno)); in ocfs2_shift_tree_depth()
1402 ocfs2_journal_dirty(handle, et->et_root_bh); in ocfs2_shift_tree_depth()
1430 static int ocfs2_find_branch_target(struct ocfs2_extent_tree *et, in ocfs2_find_branch_target() argument
1442 el = et->et_root_el; in ocfs2_find_branch_target()
1446 ocfs2_error(ocfs2_metadata_cache_get_super(et->et_ci), in ocfs2_find_branch_target()
1448 (unsigned long long)ocfs2_metadata_cache_owner(et->et_ci)); in ocfs2_find_branch_target()
1455 ocfs2_error(ocfs2_metadata_cache_get_super(et->et_ci), in ocfs2_find_branch_target()
1457 (unsigned long long)ocfs2_metadata_cache_owner(et->et_ci), i); in ocfs2_find_branch_target()
1465 status = ocfs2_read_extent_block(et->et_ci, blkno, &bh); in ocfs2_find_branch_target()
1484 el = et->et_root_el; in ocfs2_find_branch_target()
1505 static int ocfs2_grow_tree(handle_t *handle, struct ocfs2_extent_tree *et, in ocfs2_grow_tree() argument
1510 struct ocfs2_extent_list *el = et->et_root_el; in ocfs2_grow_tree()
1516 shift = ocfs2_find_branch_target(et, &bh); in ocfs2_grow_tree()
1530 ocfs2_metadata_cache_owner(et->et_ci), in ocfs2_grow_tree()
1536 ret = ocfs2_shift_tree_depth(handle, et, meta_ac, &bh); in ocfs2_grow_tree()
1561 ret = ocfs2_add_branch(handle, et, bh, last_eb_bh, in ocfs2_grow_tree()
1732 int ocfs2_find_subtree_root(struct ocfs2_extent_tree *et, in ocfs2_find_subtree_root() argument
1752 (unsigned long long)ocfs2_metadata_cache_owner(et->et_ci), in ocfs2_find_subtree_root()
2094 struct ocfs2_extent_tree *et, in ocfs2_rotate_subtree_right() argument
2110 ocfs2_error(ocfs2_metadata_cache_get_super(et->et_ci), in ocfs2_rotate_subtree_right()
2112 (unsigned long long)ocfs2_metadata_cache_owner(et->et_ci), in ocfs2_rotate_subtree_right()
2128 ret = ocfs2_path_bh_journal_access(handle, et->et_ci, right_path, in ocfs2_rotate_subtree_right()
2136 ret = ocfs2_path_bh_journal_access(handle, et->et_ci, in ocfs2_rotate_subtree_right()
2143 ret = ocfs2_path_bh_journal_access(handle, et->et_ci, in ocfs2_rotate_subtree_right()
2157 (unsigned long long)ocfs2_metadata_cache_owner(et->et_ci), in ocfs2_rotate_subtree_right()
2349 struct ocfs2_extent_tree *et, in ocfs2_rotate_tree_right() argument
2358 struct super_block *sb = ocfs2_metadata_cache_get_super(et->et_ci); in ocfs2_rotate_tree_right()
2376 (unsigned long long)ocfs2_metadata_cache_owner(et->et_ci), in ocfs2_rotate_tree_right()
2408 ocfs2_metadata_cache_owner(et->et_ci), in ocfs2_rotate_tree_right()
2411 ret = ocfs2_find_path(et->et_ci, left_path, cpos); in ocfs2_rotate_tree_right()
2422 (unsigned long long)ocfs2_metadata_cache_owner(et->et_ci), in ocfs2_rotate_tree_right()
2449 start = ocfs2_find_subtree_root(et, left_path, right_path); in ocfs2_rotate_tree_right()
2463 ret = ocfs2_rotate_subtree_right(handle, et, left_path, in ocfs2_rotate_tree_right()
2510 struct ocfs2_extent_tree *et, in ocfs2_update_edge_lengths() argument
2534 ret = ocfs2_journal_access_path(et->et_ci, handle, path); in ocfs2_update_edge_lengths()
2565 struct ocfs2_extent_tree *et, in ocfs2_unlink_path() argument
2587 (unsigned long long)ocfs2_metadata_cache_owner(et->et_ci), in ocfs2_unlink_path()
2592 ocfs2_remove_from_cache(et->et_ci, bh); in ocfs2_unlink_path()
2605 ocfs2_remove_from_cache(et->et_ci, bh); in ocfs2_unlink_path()
2610 struct ocfs2_extent_tree *et, in ocfs2_unlink_subtree() argument
2641 ocfs2_unlink_path(handle, et, dealloc, right_path, in ocfs2_unlink_subtree()
2646 struct ocfs2_extent_tree *et, in ocfs2_rotate_subtree_left() argument
2687 ret = ocfs2_journal_access_eb(handle, et->et_ci, in ocfs2_rotate_subtree_left()
2706 ret = ocfs2_et_root_journal_access(handle, et, in ocfs2_rotate_subtree_left()
2722 ret = ocfs2_path_bh_journal_access(handle, et->et_ci, right_path, in ocfs2_rotate_subtree_left()
2730 ret = ocfs2_path_bh_journal_access(handle, et->et_ci, in ocfs2_rotate_subtree_left()
2737 ret = ocfs2_path_bh_journal_access(handle, et->et_ci, in ocfs2_rotate_subtree_left()
2770 ocfs2_unlink_subtree(handle, et, left_path, right_path, in ocfs2_rotate_subtree_left()
2772 ret = ocfs2_update_edge_lengths(handle, et, subtree_index, in ocfs2_rotate_subtree_left()
2780 ocfs2_et_set_last_eb_blk(et, le64_to_cpu(eb->h_blkno)); in ocfs2_rotate_subtree_left()
2880 struct ocfs2_extent_tree *et, in ocfs2_rotate_rightmost_leaf_left() argument
2890 ret = ocfs2_path_bh_journal_access(handle, et->et_ci, path, in ocfs2_rotate_rightmost_leaf_left()
2905 struct ocfs2_extent_tree *et, in __ocfs2_rotate_tree_left() argument
2915 struct super_block *sb = ocfs2_metadata_cache_get_super(et->et_ci); in __ocfs2_rotate_tree_left()
2945 ret = ocfs2_find_path(et->et_ci, right_path, right_cpos); in __ocfs2_rotate_tree_left()
2951 subtree_root = ocfs2_find_subtree_root(et, left_path, in __ocfs2_rotate_tree_left()
2970 ret = ocfs2_path_bh_journal_access(handle, et->et_ci, in __ocfs2_rotate_tree_left()
2977 ret = ocfs2_rotate_subtree_left(handle, et, left_path, in __ocfs2_rotate_tree_left()
3022 struct ocfs2_extent_tree *et, in ocfs2_remove_rightmost_path() argument
3033 ret = ocfs2_et_sanity_check(et); in ocfs2_remove_rightmost_path()
3048 ret = ocfs2_journal_access_path(et->et_ci, handle, path); in ocfs2_remove_rightmost_path()
3054 ret = ocfs2_find_cpos_for_left_leaf(ocfs2_metadata_cache_get_super(et->et_ci), in ocfs2_remove_rightmost_path()
3073 ret = ocfs2_find_path(et->et_ci, left_path, cpos); in ocfs2_remove_rightmost_path()
3079 ret = ocfs2_journal_access_path(et->et_ci, handle, left_path); in ocfs2_remove_rightmost_path()
3085 subtree_index = ocfs2_find_subtree_root(et, left_path, path); in ocfs2_remove_rightmost_path()
3087 ocfs2_unlink_subtree(handle, et, left_path, path, in ocfs2_remove_rightmost_path()
3089 ret = ocfs2_update_edge_lengths(handle, et, subtree_index, in ocfs2_remove_rightmost_path()
3097 ocfs2_et_set_last_eb_blk(et, le64_to_cpu(eb->h_blkno)); in ocfs2_remove_rightmost_path()
3106 ocfs2_unlink_path(handle, et, dealloc, path, 1); in ocfs2_remove_rightmost_path()
3108 el = et->et_root_el; in ocfs2_remove_rightmost_path()
3113 ocfs2_et_set_last_eb_blk(et, 0); in ocfs2_remove_rightmost_path()
3124 struct ocfs2_extent_tree *et, in ocfs2_remove_rightmost_empty_extent() argument
3139 ret = ocfs2_remove_rightmost_path(handle, et, path, dealloc); in ocfs2_remove_rightmost_empty_extent()
3164 struct ocfs2_extent_tree *et, in ocfs2_rotate_tree_left() argument
3183 ret = ocfs2_rotate_rightmost_leaf_left(handle, et, path); in ocfs2_rotate_tree_left()
3215 ocfs2_error(ocfs2_metadata_cache_get_super(et->et_ci), in ocfs2_rotate_tree_left()
3217 (unsigned long long)ocfs2_metadata_cache_owner(et->et_ci), in ocfs2_rotate_tree_left()
3231 ret = ocfs2_remove_rightmost_path(handle, et, path, in ocfs2_rotate_tree_left()
3243 ret = __ocfs2_rotate_tree_left(handle, et, orig_credits, path, in ocfs2_rotate_tree_left()
3254 ret = __ocfs2_rotate_tree_left(handle, et, orig_credits, in ocfs2_rotate_tree_left()
3307 static int ocfs2_get_right_path(struct ocfs2_extent_tree *et, in ocfs2_get_right_path() argument
3324 ret = ocfs2_find_cpos_for_right_leaf(ocfs2_metadata_cache_get_super(et->et_ci), in ocfs2_get_right_path()
3341 ret = ocfs2_find_path(et->et_ci, right_path, right_cpos); in ocfs2_get_right_path()
3363 struct ocfs2_extent_tree *et, in ocfs2_merge_rec_right() argument
3384 ret = ocfs2_get_right_path(et, left_path, &right_path); in ocfs2_merge_rec_right()
3403 subtree_index = ocfs2_find_subtree_root(et, left_path, in ocfs2_merge_rec_right()
3417 ret = ocfs2_path_bh_journal_access(handle, et->et_ci, right_path, in ocfs2_merge_rec_right()
3426 ret = ocfs2_path_bh_journal_access(handle, et->et_ci, in ocfs2_merge_rec_right()
3433 ret = ocfs2_path_bh_journal_access(handle, et->et_ci, in ocfs2_merge_rec_right()
3446 ret = ocfs2_path_bh_journal_access(handle, et->et_ci, left_path, in ocfs2_merge_rec_right()
3457 -ocfs2_clusters_to_blocks(ocfs2_metadata_cache_get_super(et->et_ci), in ocfs2_merge_rec_right()
3474 static int ocfs2_get_left_path(struct ocfs2_extent_tree *et, in ocfs2_get_left_path() argument
3487 ret = ocfs2_find_cpos_for_left_leaf(ocfs2_metadata_cache_get_super(et->et_ci), in ocfs2_get_left_path()
3504 ret = ocfs2_find_path(et->et_ci, left_path, left_cpos); in ocfs2_get_left_path()
3529 struct ocfs2_extent_tree *et, in ocfs2_merge_rec_left() argument
3549 ret = ocfs2_get_left_path(et, right_path, &left_path); in ocfs2_merge_rec_left()
3565 subtree_index = ocfs2_find_subtree_root(et, left_path, in ocfs2_merge_rec_left()
3579 ret = ocfs2_path_bh_journal_access(handle, et->et_ci, right_path, in ocfs2_merge_rec_left()
3588 ret = ocfs2_path_bh_journal_access(handle, et->et_ci, in ocfs2_merge_rec_left()
3595 ret = ocfs2_path_bh_journal_access(handle, et->et_ci, in ocfs2_merge_rec_left()
3608 ret = ocfs2_path_bh_journal_access(handle, et->et_ci, right_path, in ocfs2_merge_rec_left()
3627 ocfs2_clusters_to_blocks(ocfs2_metadata_cache_get_super(et->et_ci), in ocfs2_merge_rec_left()
3645 ret = ocfs2_remove_rightmost_path(handle, et, in ocfs2_merge_rec_left()
3668 struct ocfs2_extent_tree *et, in ocfs2_try_to_merge_extent() argument
3689 ret = ocfs2_rotate_tree_left(handle, et, path, dealloc); in ocfs2_try_to_merge_extent()
3718 ret = ocfs2_merge_rec_right(path, handle, et, split_rec, in ocfs2_try_to_merge_extent()
3731 ret = ocfs2_rotate_tree_left(handle, et, path, dealloc); in ocfs2_try_to_merge_extent()
3743 ret = ocfs2_merge_rec_left(path, handle, et, rec, in ocfs2_try_to_merge_extent()
3751 ret = ocfs2_rotate_tree_left(handle, et, path, dealloc); in ocfs2_try_to_merge_extent()
3768 ret = ocfs2_merge_rec_left(path, handle, et, in ocfs2_try_to_merge_extent()
3777 et, split_rec, in ocfs2_try_to_merge_extent()
3790 ret = ocfs2_rotate_tree_left(handle, et, path, in ocfs2_try_to_merge_extent()
3837 static void ocfs2_insert_at_leaf(struct ocfs2_extent_tree *et, in ocfs2_insert_at_leaf() argument
3852 ocfs2_subtract_from_rec(ocfs2_metadata_cache_get_super(et->et_ci), in ocfs2_insert_at_leaf()
3898 ocfs2_metadata_cache_owner(et->et_ci), in ocfs2_insert_at_leaf()
3927 struct ocfs2_extent_tree *et, in ocfs2_adjust_rightmost_records() argument
3945 ocfs2_error(ocfs2_metadata_cache_get_super(et->et_ci), in ocfs2_adjust_rightmost_records()
3947 (unsigned long long)ocfs2_metadata_cache_owner(et->et_ci)); in ocfs2_adjust_rightmost_records()
3965 struct ocfs2_extent_tree *et, in ocfs2_append_rec_to_path() argument
3993 ret = ocfs2_find_cpos_for_left_leaf(ocfs2_metadata_cache_get_super(et->et_ci), in ocfs2_append_rec_to_path()
4002 ocfs2_metadata_cache_owner(et->et_ci), in ocfs2_append_rec_to_path()
4018 ret = ocfs2_find_path(et->et_ci, left_path, in ocfs2_append_rec_to_path()
4032 ret = ocfs2_journal_access_path(et->et_ci, handle, right_path); in ocfs2_append_rec_to_path()
4038 ocfs2_adjust_rightmost_records(handle, et, right_path, insert_rec); in ocfs2_append_rec_to_path()
4049 static void ocfs2_split_record(struct ocfs2_extent_tree *et, in ocfs2_split_record() argument
4122 ocfs2_subtract_from_rec(ocfs2_metadata_cache_get_super(et->et_ci), in ocfs2_split_record()
4136 struct ocfs2_extent_tree *et, in ocfs2_insert_path() argument
4158 ret = ocfs2_journal_access_path(et->et_ci, handle, left_path); in ocfs2_insert_path()
4169 ret = ocfs2_journal_access_path(et->et_ci, handle, right_path); in ocfs2_insert_path()
4181 ocfs2_split_record(et, left_path, right_path, in ocfs2_insert_path()
4193 ocfs2_insert_at_leaf(et, insert_rec, path_leaf_el(right_path), in ocfs2_insert_path()
4205 subtree_index = ocfs2_find_subtree_root(et, left_path, in ocfs2_insert_path()
4217 struct ocfs2_extent_tree *et, in ocfs2_do_insert_extent() argument
4227 el = et->et_root_el; in ocfs2_do_insert_extent()
4229 ret = ocfs2_et_root_journal_access(handle, et, in ocfs2_do_insert_extent()
4237 ocfs2_insert_at_leaf(et, insert_rec, el, type); in ocfs2_do_insert_extent()
4241 right_path = ocfs2_new_path_from_et(et); in ocfs2_do_insert_extent()
4260 ret = ocfs2_find_path(et->et_ci, right_path, cpos); in ocfs2_do_insert_extent()
4279 ret = ocfs2_rotate_tree_right(handle, et, type->ins_split, in ocfs2_do_insert_extent()
4291 ret = ocfs2_et_root_journal_access(handle, et, in ocfs2_do_insert_extent()
4299 ret = ocfs2_append_rec_to_path(handle, et, insert_rec, in ocfs2_do_insert_extent()
4307 ret = ocfs2_insert_path(handle, et, left_path, right_path, in ocfs2_do_insert_extent()
4316 ocfs2_et_update_clusters(et, in ocfs2_do_insert_extent()
4319 ocfs2_journal_dirty(handle, et->et_root_bh); in ocfs2_do_insert_extent()
4328 static int ocfs2_figure_merge_contig_type(struct ocfs2_extent_tree *et, in ocfs2_figure_merge_contig_type() argument
4342 struct super_block *sb = ocfs2_metadata_cache_get_super(et->et_ci); in ocfs2_figure_merge_contig_type()
4359 status = ocfs2_find_path(et->et_ci, left_path, in ocfs2_figure_merge_contig_type()
4392 ret = ocfs2_et_extent_contig(et, rec, split_rec); in ocfs2_figure_merge_contig_type()
4415 status = ocfs2_find_path(et->et_ci, right_path, right_cpos); in ocfs2_figure_merge_contig_type()
4439 contig_type = ocfs2_et_extent_contig(et, rec, split_rec); in ocfs2_figure_merge_contig_type()
4458 static void ocfs2_figure_contig_type(struct ocfs2_extent_tree *et, in ocfs2_figure_contig_type() argument
4469 contig_type = ocfs2_et_extent_contig(et, &el->l_recs[i], in ocfs2_figure_contig_type()
4488 if (et->et_max_leaf_clusters && in ocfs2_figure_contig_type()
4489 (len > et->et_max_leaf_clusters)) in ocfs2_figure_contig_type()
4551 static int ocfs2_figure_insert_type(struct ocfs2_extent_tree *et, in ocfs2_figure_insert_type() argument
4565 el = et->et_root_el; in ocfs2_figure_insert_type()
4575 ret = ocfs2_read_extent_block(et->et_ci, in ocfs2_figure_insert_type()
4576 ocfs2_et_get_last_eb_blk(et), in ocfs2_figure_insert_type()
4598 ocfs2_figure_contig_type(et, insert, el, insert_rec); in ocfs2_figure_insert_type()
4603 path = ocfs2_new_path_from_et(et); in ocfs2_figure_insert_type()
4616 ret = ocfs2_find_path(et->et_ci, path, le32_to_cpu(insert_rec->e_cpos)); in ocfs2_figure_insert_type()
4632 ocfs2_figure_contig_type(et, insert, el, insert_rec); in ocfs2_figure_insert_type()
4653 if (ocfs2_et_get_last_eb_blk(et) == in ocfs2_figure_insert_type()
4682 struct ocfs2_extent_tree *et, in ocfs2_insert_extent() argument
4696 (unsigned long long)ocfs2_metadata_cache_owner(et->et_ci), in ocfs2_insert_extent()
4704 status = ocfs2_et_insert_check(et, &rec); in ocfs2_insert_extent()
4710 status = ocfs2_figure_insert_type(et, &last_eb_bh, &rec, in ocfs2_insert_extent()
4722 status = ocfs2_grow_tree(handle, et, in ocfs2_insert_extent()
4732 status = ocfs2_do_insert_extent(handle, et, &rec, &insert); in ocfs2_insert_extent()
4736 ocfs2_et_extent_map_insert(et, &rec); in ocfs2_insert_extent()
4752 struct ocfs2_extent_tree *et, in ocfs2_add_clusters_in_btree() argument
4768 OCFS2_SB(ocfs2_metadata_cache_get_super(et->et_ci)); in ocfs2_add_clusters_in_btree()
4775 free_extents = ocfs2_num_free_extents(osb, et); in ocfs2_add_clusters_in_btree()
4794 < ocfs2_extend_meta_needed(et->et_root_el))) { in ocfs2_add_clusters_in_btree()
4812 status = ocfs2_et_root_journal_access(handle, et, in ocfs2_add_clusters_in_btree()
4822 (unsigned long long)ocfs2_metadata_cache_owner(et->et_ci), in ocfs2_add_clusters_in_btree()
4824 status = ocfs2_insert_extent(handle, et, *logical_offset, block, in ocfs2_add_clusters_in_btree()
4832 ocfs2_journal_dirty(handle, et->et_root_bh); in ocfs2_add_clusters_in_btree()
4884 struct ocfs2_extent_tree *et, in ocfs2_split_and_insert() argument
4907 rightmost_el = et->et_root_el; in ocfs2_split_and_insert()
4918 ret = ocfs2_grow_tree(handle, et, in ocfs2_split_and_insert()
4947 ocfs2_make_right_split_rec(ocfs2_metadata_cache_get_super(et->et_ci), in ocfs2_split_and_insert()
4956 ret = ocfs2_do_insert_extent(handle, et, &split_rec, &insert); in ocfs2_split_and_insert()
4972 ret = ocfs2_find_path(et->et_ci, path, cpos); in ocfs2_split_and_insert()
4981 ocfs2_error(ocfs2_metadata_cache_get_super(et->et_ci), in ocfs2_split_and_insert()
4983 (unsigned long long)ocfs2_metadata_cache_owner(et->et_ci), in ocfs2_split_and_insert()
4996 struct ocfs2_extent_tree *et, in ocfs2_replace_extent_rec() argument
5004 ret = ocfs2_path_bh_journal_access(handle, et->et_ci, path, in ocfs2_replace_extent_rec()
5038 struct ocfs2_extent_tree *et, in ocfs2_split_extent() argument
5060 ret = ocfs2_figure_merge_contig_type(et, path, el, in ocfs2_split_extent()
5077 ret = ocfs2_read_extent_block(et->et_ci, in ocfs2_split_extent()
5078 ocfs2_et_get_last_eb_blk(et), in ocfs2_split_extent()
5104 ret = ocfs2_replace_extent_rec(handle, et, path, el, in ocfs2_split_extent()
5107 ret = ocfs2_split_and_insert(handle, et, path, in ocfs2_split_extent()
5113 ret = ocfs2_try_to_merge_extent(handle, et, path, in ocfs2_split_extent()
5138 struct ocfs2_extent_tree *et, in ocfs2_change_extent_flag() argument
5145 struct super_block *sb = ocfs2_metadata_cache_get_super(et->et_ci); in ocfs2_change_extent_flag()
5152 left_path = ocfs2_new_path_from_et(et); in ocfs2_change_extent_flag()
5159 ret = ocfs2_find_path(et->et_ci, left_path, cpos); in ocfs2_change_extent_flag()
5170 (unsigned long long)ocfs2_metadata_cache_owner(et->et_ci), in ocfs2_change_extent_flag()
5181 (unsigned long long)ocfs2_metadata_cache_owner(et->et_ci), in ocfs2_change_extent_flag()
5189 (unsigned long long)ocfs2_metadata_cache_owner(et->et_ci), in ocfs2_change_extent_flag()
5204 ret = ocfs2_split_extent(handle, et, left_path, in ocfs2_change_extent_flag()
5226 struct ocfs2_extent_tree *et, in ocfs2_mark_extent_written() argument
5248 ocfs2_et_extent_map_truncate(et, 0); in ocfs2_mark_extent_written()
5250 ret = ocfs2_change_extent_flag(handle, et, cpos, in ocfs2_mark_extent_written()
5260 static int ocfs2_split_tree(handle_t *handle, struct ocfs2_extent_tree *et, in ocfs2_split_tree() argument
5278 ocfs2_make_right_split_rec(ocfs2_metadata_cache_get_super(et->et_ci), in ocfs2_split_tree()
5283 ret = ocfs2_read_extent_block(et->et_ci, in ocfs2_split_tree()
5284 ocfs2_et_get_last_eb_blk(et), in ocfs2_split_tree()
5297 ocfs2_extend_meta_needed(et->et_root_el); in ocfs2_split_tree()
5306 ret = ocfs2_grow_tree(handle, et, &depth, &last_eb_bh, in ocfs2_split_tree()
5320 ret = ocfs2_do_insert_extent(handle, et, &split_rec, &insert); in ocfs2_split_tree()
5330 struct ocfs2_extent_tree *et, in ocfs2_truncate_rec() argument
5338 struct super_block *sb = ocfs2_metadata_cache_get_super(et->et_ci); in ocfs2_truncate_rec()
5345 ret = ocfs2_rotate_tree_left(handle, et, path, dealloc); in ocfs2_truncate_rec()
5397 ret = ocfs2_find_path(et->et_ci, left_path, in ocfs2_truncate_rec()
5414 ret = ocfs2_journal_access_path(et->et_ci, handle, path); in ocfs2_truncate_rec()
5420 ret = ocfs2_journal_access_path(et->et_ci, handle, left_path); in ocfs2_truncate_rec()
5443 ocfs2_adjust_rightmost_records(handle, et, path, in ocfs2_truncate_rec()
5455 ocfs2_adjust_rightmost_records(handle, et, path, rec); in ocfs2_truncate_rec()
5460 (unsigned long long)ocfs2_metadata_cache_owner(et->et_ci), in ocfs2_truncate_rec()
5469 subtree_index = ocfs2_find_subtree_root(et, left_path, path); in ocfs2_truncate_rec()
5476 ret = ocfs2_rotate_tree_left(handle, et, path, dealloc); in ocfs2_truncate_rec()
5488 struct ocfs2_extent_tree *et, in ocfs2_remove_extent() argument
5503 ocfs2_et_extent_map_truncate(et, 0); in ocfs2_remove_extent()
5505 path = ocfs2_new_path_from_et(et); in ocfs2_remove_extent()
5512 ret = ocfs2_find_path(et->et_ci, path, cpos); in ocfs2_remove_extent()
5521 ocfs2_error(ocfs2_metadata_cache_get_super(et->et_ci), in ocfs2_remove_extent()
5523 (unsigned long long)ocfs2_metadata_cache_owner(et->et_ci), in ocfs2_remove_extent()
5552 (unsigned long long)ocfs2_metadata_cache_owner(et->et_ci), in ocfs2_remove_extent()
5557 ret = ocfs2_truncate_rec(handle, et, path, index, dealloc, in ocfs2_remove_extent()
5564 ret = ocfs2_split_tree(handle, et, path, index, in ocfs2_remove_extent()
5577 ret = ocfs2_find_path(et->et_ci, path, cpos); in ocfs2_remove_extent()
5586 ocfs2_error(ocfs2_metadata_cache_get_super(et->et_ci), in ocfs2_remove_extent()
5588 (unsigned long long)ocfs2_metadata_cache_owner(et->et_ci), in ocfs2_remove_extent()
5602 ocfs2_error(ocfs2_metadata_cache_get_super(et->et_ci), in ocfs2_remove_extent()
5604 (unsigned long long)ocfs2_metadata_cache_owner(et->et_ci), in ocfs2_remove_extent()
5611 ret = ocfs2_truncate_rec(handle, et, path, index, dealloc, in ocfs2_remove_extent()
5634 struct ocfs2_extent_tree *et, in ocfs2_reserve_blocks_for_rec_trunc() argument
5645 num_free_extents = ocfs2_num_free_extents(osb, et); in ocfs2_reserve_blocks_for_rec_trunc()
5654 extra_blocks += ocfs2_extend_meta_needed(et->et_root_el); in ocfs2_reserve_blocks_for_rec_trunc()
5677 struct ocfs2_extent_tree *et, in ocfs2_remove_btree_range() argument
5715 ret = ocfs2_reserve_blocks_for_rec_trunc(inode, et, 1, &meta_ac, in ocfs2_remove_btree_range()
5740 ret = ocfs2_et_root_journal_access(handle, et, in ocfs2_remove_btree_range()
5750 ret = ocfs2_remove_extent(handle, et, cpos, len, meta_ac, dealloc); in ocfs2_remove_btree_range()
5756 ocfs2_et_update_clusters(et, -len); in ocfs2_remove_btree_range()
5759 ocfs2_journal_dirty(handle, et->et_root_bh); in ocfs2_remove_btree_range()
6865 struct ocfs2_extent_tree et; in ocfs2_convert_inline_data_to_extents() local
6977 ocfs2_init_dinode_extent_tree(&et, INODE_CACHE(inode), di_bh); in ocfs2_convert_inline_data_to_extents()
6978 ret = ocfs2_insert_extent(handle, &et, 0, block, 1, 0, NULL); in ocfs2_convert_inline_data_to_extents()
7038 struct ocfs2_extent_tree et; in ocfs2_commit_truncate() local
7042 ocfs2_init_dinode_extent_tree(&et, INODE_CACHE(inode), di_bh); in ocfs2_commit_truncate()
7118 &et, path, &dealloc); in ocfs2_commit_truncate()
7167 status = ocfs2_remove_btree_range(inode, &et, trunc_cpos, in ocfs2_commit_truncate()