Lines Matching refs:et

69 	void (*eo_set_last_eb_blk)(struct ocfs2_extent_tree *et,
71 u64 (*eo_get_last_eb_blk)(struct ocfs2_extent_tree *et);
79 void (*eo_update_clusters)(struct ocfs2_extent_tree *et,
86 void (*eo_extent_map_insert)(struct ocfs2_extent_tree *et,
93 void (*eo_extent_map_truncate)(struct ocfs2_extent_tree *et,
100 int (*eo_insert_check)(struct ocfs2_extent_tree *et,
102 int (*eo_sanity_check)(struct ocfs2_extent_tree *et);
111 * ->eo_fill_root_el() takes et->et_object and sets et->et_root_el.
114 void (*eo_fill_root_el)(struct ocfs2_extent_tree *et);
117 * ->eo_fill_max_leaf_clusters sets et->et_max_leaf_clusters if
118 * it exists. If it does not, et->et_max_leaf_clusters is set
121 void (*eo_fill_max_leaf_clusters)(struct ocfs2_extent_tree *et);
129 (*eo_extent_contig)(struct ocfs2_extent_tree *et,
139 static u64 ocfs2_dinode_get_last_eb_blk(struct ocfs2_extent_tree *et);
140 static void ocfs2_dinode_set_last_eb_blk(struct ocfs2_extent_tree *et,
142 static void ocfs2_dinode_update_clusters(struct ocfs2_extent_tree *et,
144 static void ocfs2_dinode_extent_map_insert(struct ocfs2_extent_tree *et,
146 static void ocfs2_dinode_extent_map_truncate(struct ocfs2_extent_tree *et,
148 static int ocfs2_dinode_insert_check(struct ocfs2_extent_tree *et,
150 static int ocfs2_dinode_sanity_check(struct ocfs2_extent_tree *et);
151 static void ocfs2_dinode_fill_root_el(struct ocfs2_extent_tree *et);
154 struct ocfs2_extent_tree *et,
157 static int ocfs2_is_dealloc_empty(struct ocfs2_extent_tree *et);
170 static void ocfs2_dinode_set_last_eb_blk(struct ocfs2_extent_tree *et,
173 struct ocfs2_dinode *di = et->et_object;
175 BUG_ON(et->et_ops != &ocfs2_dinode_et_ops);
179 static u64 ocfs2_dinode_get_last_eb_blk(struct ocfs2_extent_tree *et)
181 struct ocfs2_dinode *di = et->et_object;
183 BUG_ON(et->et_ops != &ocfs2_dinode_et_ops);
187 static void ocfs2_dinode_update_clusters(struct ocfs2_extent_tree *et,
190 struct ocfs2_inode_info *oi = cache_info_to_inode(et->et_ci);
191 struct ocfs2_dinode *di = et->et_object;
199 static void ocfs2_dinode_extent_map_insert(struct ocfs2_extent_tree *et,
202 struct inode *inode = &cache_info_to_inode(et->et_ci)->vfs_inode;
207 static void ocfs2_dinode_extent_map_truncate(struct ocfs2_extent_tree *et,
210 struct inode *inode = &cache_info_to_inode(et->et_ci)->vfs_inode;
215 static int ocfs2_dinode_insert_check(struct ocfs2_extent_tree *et,
218 struct ocfs2_inode_info *oi = cache_info_to_inode(et->et_ci);
233 static int ocfs2_dinode_sanity_check(struct ocfs2_extent_tree *et)
235 struct ocfs2_dinode *di = et->et_object;
237 BUG_ON(et->et_ops != &ocfs2_dinode_et_ops);
243 static void ocfs2_dinode_fill_root_el(struct ocfs2_extent_tree *et)
245 struct ocfs2_dinode *di = et->et_object;
247 et->et_root_el = &di->id2.i_list;
251 static void ocfs2_xattr_value_fill_root_el(struct ocfs2_extent_tree *et)
253 struct ocfs2_xattr_value_buf *vb = et->et_object;
255 et->et_root_el = &vb->vb_xv->xr_list;
258 static void ocfs2_xattr_value_set_last_eb_blk(struct ocfs2_extent_tree *et,
261 struct ocfs2_xattr_value_buf *vb = et->et_object;
266 static u64 ocfs2_xattr_value_get_last_eb_blk(struct ocfs2_extent_tree *et)
268 struct ocfs2_xattr_value_buf *vb = et->et_object;
273 static void ocfs2_xattr_value_update_clusters(struct ocfs2_extent_tree *et,
276 struct ocfs2_xattr_value_buf *vb = et->et_object;
288 static void ocfs2_xattr_tree_fill_root_el(struct ocfs2_extent_tree *et)
290 struct ocfs2_xattr_block *xb = et->et_object;
292 et->et_root_el = &xb->xb_attrs.xb_root.xt_list;
295 static void ocfs2_xattr_tree_fill_max_leaf_clusters(struct ocfs2_extent_tree *et)
297 struct super_block *sb = ocfs2_metadata_cache_get_super(et->et_ci);
298 et->et_max_leaf_clusters =
302 static void ocfs2_xattr_tree_set_last_eb_blk(struct ocfs2_extent_tree *et,
305 struct ocfs2_xattr_block *xb = et->et_object;
311 static u64 ocfs2_xattr_tree_get_last_eb_blk(struct ocfs2_extent_tree *et)
313 struct ocfs2_xattr_block *xb = et->et_object;
319 static void ocfs2_xattr_tree_update_clusters(struct ocfs2_extent_tree *et,
322 struct ocfs2_xattr_block *xb = et->et_object;
335 static void ocfs2_dx_root_set_last_eb_blk(struct ocfs2_extent_tree *et,
338 struct ocfs2_dx_root_block *dx_root = et->et_object;
343 static u64 ocfs2_dx_root_get_last_eb_blk(struct ocfs2_extent_tree *et)
345 struct ocfs2_dx_root_block *dx_root = et->et_object;
350 static void ocfs2_dx_root_update_clusters(struct ocfs2_extent_tree *et,
353 struct ocfs2_dx_root_block *dx_root = et->et_object;
358 static int ocfs2_dx_root_sanity_check(struct ocfs2_extent_tree *et)
360 struct ocfs2_dx_root_block *dx_root = et->et_object;
367 static void ocfs2_dx_root_fill_root_el(struct ocfs2_extent_tree *et)
369 struct ocfs2_dx_root_block *dx_root = et->et_object;
371 et->et_root_el = &dx_root->dr_list;
382 static void ocfs2_refcount_tree_fill_root_el(struct ocfs2_extent_tree *et)
384 struct ocfs2_refcount_block *rb = et->et_object;
386 et->et_root_el = &rb->rf_list;
389 static void ocfs2_refcount_tree_set_last_eb_blk(struct ocfs2_extent_tree *et,
392 struct ocfs2_refcount_block *rb = et->et_object;
397 static u64 ocfs2_refcount_tree_get_last_eb_blk(struct ocfs2_extent_tree *et)
399 struct ocfs2_refcount_block *rb = et->et_object;
404 static void ocfs2_refcount_tree_update_clusters(struct ocfs2_extent_tree *et,
407 struct ocfs2_refcount_block *rb = et->et_object;
413 ocfs2_refcount_tree_extent_contig(struct ocfs2_extent_tree *et,
428 static void __ocfs2_init_extent_tree(struct ocfs2_extent_tree *et,
435 et->et_ops = ops;
436 et->et_root_bh = bh;
437 et->et_ci = ci;
438 et->et_root_journal_access = access;
441 et->et_object = obj;
442 et->et_dealloc = NULL;
444 et->et_ops->eo_fill_root_el(et);
445 if (!et->et_ops->eo_fill_max_leaf_clusters)
446 et->et_max_leaf_clusters = 0;
448 et->et_ops->eo_fill_max_leaf_clusters(et);
451 void ocfs2_init_dinode_extent_tree(struct ocfs2_extent_tree *et,
455 __ocfs2_init_extent_tree(et, ci, bh, ocfs2_journal_access_di,
459 void ocfs2_init_xattr_tree_extent_tree(struct ocfs2_extent_tree *et,
463 __ocfs2_init_extent_tree(et, ci, bh, ocfs2_journal_access_xb,
467 void ocfs2_init_xattr_value_extent_tree(struct ocfs2_extent_tree *et,
471 __ocfs2_init_extent_tree(et, ci, vb->vb_bh, vb->vb_access, vb,
475 void ocfs2_init_dx_root_extent_tree(struct ocfs2_extent_tree *et,
479 __ocfs2_init_extent_tree(et, ci, bh, ocfs2_journal_access_dr,
483 void ocfs2_init_refcount_extent_tree(struct ocfs2_extent_tree *et,
487 __ocfs2_init_extent_tree(et, ci, bh, ocfs2_journal_access_rb,
491 static inline void ocfs2_et_set_last_eb_blk(struct ocfs2_extent_tree *et,
494 et->et_ops->eo_set_last_eb_blk(et, new_last_eb_blk);
497 static inline u64 ocfs2_et_get_last_eb_blk(struct ocfs2_extent_tree *et)
499 return et->et_ops->eo_get_last_eb_blk(et);
502 static inline void ocfs2_et_update_clusters(struct ocfs2_extent_tree *et,
505 et->et_ops->eo_update_clusters(et, clusters);
508 static inline void ocfs2_et_extent_map_insert(struct ocfs2_extent_tree *et,
511 if (et->et_ops->eo_extent_map_insert)
512 et->et_ops->eo_extent_map_insert(et, rec);
515 static inline void ocfs2_et_extent_map_truncate(struct ocfs2_extent_tree *et,
518 if (et->et_ops->eo_extent_map_truncate)
519 et->et_ops->eo_extent_map_truncate(et, clusters);
523 struct ocfs2_extent_tree *et,
526 return et->et_root_journal_access(handle, et->et_ci, et->et_root_bh,
531 ocfs2_et_extent_contig(struct ocfs2_extent_tree *et,
535 if (et->et_ops->eo_extent_contig)
536 return et->et_ops->eo_extent_contig(et, rec, insert_rec);
539 ocfs2_metadata_cache_get_super(et->et_ci),
543 static inline int ocfs2_et_insert_check(struct ocfs2_extent_tree *et,
548 if (et->et_ops->eo_insert_check)
549 ret = et->et_ops->eo_insert_check(et, rec);
553 static inline int ocfs2_et_sanity_check(struct ocfs2_extent_tree *et)
557 if (et->et_ops->eo_sanity_check)
558 ret = et->et_ops->eo_sanity_check(et);
565 struct ocfs2_extent_tree *et,
706 struct ocfs2_path *ocfs2_new_path_from_et(struct ocfs2_extent_tree *et)
708 return ocfs2_new_path(et->et_root_bh, et->et_root_el,
709 et->et_root_journal_access);
948 int ocfs2_num_free_extents(struct ocfs2_extent_tree *et)
956 el = et->et_root_el;
957 last_eb_blk = ocfs2_et_get_last_eb_blk(et);
960 retval = ocfs2_read_extent_block(et->et_ci, last_eb_blk,
971 retval = ocfs2_error(ocfs2_metadata_cache_get_super(et->et_ci),
973 (unsigned long long)ocfs2_metadata_cache_owner(et->et_ci),
993 struct ocfs2_extent_tree *et,
1003 OCFS2_SB(ocfs2_metadata_cache_get_super(et->et_ci));
1027 ocfs2_set_new_buffer_uptodate(et->et_ci, bhs[i]);
1029 status = ocfs2_journal_access_eb(handle, et->et_ci,
1099 struct ocfs2_extent_tree *et)
1106 path = ocfs2_new_path_from_et(et);
1112 status = ocfs2_find_path(et->et_ci, path, UINT_MAX);
1124 status = ocfs2_journal_access_path(et->et_ci, handle, path);
1133 ocfs2_adjust_rightmost_records(handle, et, path, rec);
1152 struct ocfs2_extent_tree *et,
1172 el = et->et_root_el;
1181 root_end = ocfs2_sum_rightmost_rec(et->et_root_el);
1193 ocfs2_metadata_cache_owner(et->et_ci),
1196 status = ocfs2_adjust_rightmost_branch(handle, et);
1215 if (!ocfs2_is_dealloc_empty(et)) {
1216 status = ocfs2_reuse_blk_from_dealloc(handle, et,
1229 status = ocfs2_create_new_meta_bhs(handle, et,
1254 status = ocfs2_journal_access_eb(handle, et->et_ci, bh,
1289 status = ocfs2_journal_access_eb(handle, et->et_ci, *last_eb_bh,
1295 status = ocfs2_et_root_journal_access(handle, et,
1302 status = ocfs2_journal_access_eb(handle, et->et_ci, eb_bh,
1320 ocfs2_et_set_last_eb_blk(et, new_last_eb_blk);
1326 ocfs2_journal_dirty(handle, et->et_root_bh);
1355 struct ocfs2_extent_tree *et,
1366 if (!ocfs2_is_dealloc_empty(et)) {
1367 status = ocfs2_reuse_blk_from_dealloc(handle, et,
1371 status = ocfs2_create_new_meta_bhs(handle, et, 1, meta_ac,
1388 root_el = et->et_root_el;
1390 status = ocfs2_journal_access_eb(handle, et->et_ci, new_eb_bh,
1405 status = ocfs2_et_root_journal_access(handle, et,
1426 ocfs2_et_set_last_eb_blk(et, le64_to_cpu(eb->h_blkno));
1428 ocfs2_journal_dirty(handle, et->et_root_bh);
1456 static int ocfs2_find_branch_target(struct ocfs2_extent_tree *et,
1468 el = et->et_root_el;
1472 status = ocfs2_error(ocfs2_metadata_cache_get_super(et->et_ci),
1474 (unsigned long long)ocfs2_metadata_cache_owner(et->et_ci));
1480 status = ocfs2_error(ocfs2_metadata_cache_get_super(et->et_ci),
1482 (unsigned long long)ocfs2_metadata_cache_owner(et->et_ci), i);
1489 status = ocfs2_read_extent_block(et->et_ci, blkno, &bh);
1508 el = et->et_root_el;
1529 static int ocfs2_grow_tree(handle_t *handle, struct ocfs2_extent_tree *et,
1534 struct ocfs2_extent_list *el = et->et_root_el;
1538 BUG_ON(meta_ac == NULL && ocfs2_is_dealloc_empty(et));
1540 shift = ocfs2_find_branch_target(et, &bh);
1554 ocfs2_metadata_cache_owner(et->et_ci),
1560 ret = ocfs2_shift_tree_depth(handle, et, meta_ac, &bh);
1585 ret = ocfs2_add_branch(handle, et, bh, last_eb_bh,
1754 int ocfs2_find_subtree_root(struct ocfs2_extent_tree *et,
1774 (unsigned long long)ocfs2_metadata_cache_owner(et->et_ci),
2113 struct ocfs2_extent_tree *et,
2129 ocfs2_error(ocfs2_metadata_cache_get_super(et->et_ci),
2131 (unsigned long long)ocfs2_metadata_cache_owner(et->et_ci),
2147 ret = ocfs2_path_bh_journal_access(handle, et->et_ci, right_path,
2155 ret = ocfs2_path_bh_journal_access(handle, et->et_ci,
2162 ret = ocfs2_path_bh_journal_access(handle, et->et_ci,
2176 (unsigned long long)ocfs2_metadata_cache_owner(et->et_ci),
2368 struct ocfs2_extent_tree *et,
2377 struct super_block *sb = ocfs2_metadata_cache_get_super(et->et_ci);
2395 (unsigned long long)ocfs2_metadata_cache_owner(et->et_ci),
2427 ocfs2_metadata_cache_owner(et->et_ci),
2430 ret = ocfs2_find_path(et->et_ci, left_path, cpos);
2441 (unsigned long long)ocfs2_metadata_cache_owner(et->et_ci),
2468 start = ocfs2_find_subtree_root(et, left_path, right_path);
2482 ret = ocfs2_rotate_subtree_right(handle, et, left_path,
2529 struct ocfs2_extent_tree *et,
2538 ret = ocfs2_journal_access_path(et->et_ci, handle, path);
2569 struct ocfs2_extent_tree *et,
2591 (unsigned long long)ocfs2_metadata_cache_owner(et->et_ci),
2596 ocfs2_remove_from_cache(et->et_ci, bh);
2609 ocfs2_remove_from_cache(et->et_ci, bh);
2614 struct ocfs2_extent_tree *et,
2642 ocfs2_unlink_path(handle, et, dealloc, right_path,
2647 struct ocfs2_extent_tree *et,
2688 ret = ocfs2_journal_access_eb(handle, et->et_ci,
2707 ret = ocfs2_et_root_journal_access(handle, et,
2723 ret = ocfs2_path_bh_journal_access(handle, et->et_ci, right_path,
2731 ret = ocfs2_path_bh_journal_access(handle, et->et_ci,
2738 ret = ocfs2_path_bh_journal_access(handle, et->et_ci,
2771 ocfs2_unlink_subtree(handle, et, left_path, right_path,
2773 ret = ocfs2_update_edge_lengths(handle, et, left_path);
2780 ocfs2_et_set_last_eb_blk(et, le64_to_cpu(eb->h_blkno));
2880 struct ocfs2_extent_tree *et,
2890 ret = ocfs2_path_bh_journal_access(handle, et->et_ci, path,
2905 struct ocfs2_extent_tree *et,
2915 struct super_block *sb = ocfs2_metadata_cache_get_super(et->et_ci);
2945 ret = ocfs2_find_path(et->et_ci, right_path, right_cpos);
2951 subtree_root = ocfs2_find_subtree_root(et, left_path,
2970 ret = ocfs2_path_bh_journal_access(handle, et->et_ci,
2977 ret = ocfs2_rotate_subtree_left(handle, et, left_path,
3022 struct ocfs2_extent_tree *et,
3032 ret = ocfs2_et_sanity_check(et);
3036 ret = ocfs2_journal_access_path(et->et_ci, handle, path);
3042 ret = ocfs2_find_cpos_for_left_leaf(ocfs2_metadata_cache_get_super(et->et_ci),
3061 ret = ocfs2_find_path(et->et_ci, left_path, cpos);
3067 ret = ocfs2_journal_access_path(et->et_ci, handle, left_path);
3073 subtree_index = ocfs2_find_subtree_root(et, left_path, path);
3075 ocfs2_unlink_subtree(handle, et, left_path, path,
3077 ret = ocfs2_update_edge_lengths(handle, et, left_path);
3084 ocfs2_et_set_last_eb_blk(et, le64_to_cpu(eb->h_blkno));
3093 ocfs2_unlink_path(handle, et, dealloc, path, 1);
3095 el = et->et_root_el;
3100 ocfs2_et_set_last_eb_blk(et, 0);
3111 struct ocfs2_extent_tree *et,
3126 ret = ocfs2_remove_rightmost_path(handle, et, path, dealloc);
3151 struct ocfs2_extent_tree *et,
3170 ret = ocfs2_rotate_rightmost_leaf_left(handle, et, path);
3201 ret = ocfs2_error(ocfs2_metadata_cache_get_super(et->et_ci),
3203 (unsigned long long)ocfs2_metadata_cache_owner(et->et_ci),
3217 ret = ocfs2_remove_rightmost_path(handle, et, path,
3229 ret = __ocfs2_rotate_tree_left(handle, et, orig_credits, path,
3240 ret = __ocfs2_rotate_tree_left(handle, et, orig_credits,
3293 static int ocfs2_get_right_path(struct ocfs2_extent_tree *et,
3310 ret = ocfs2_find_cpos_for_right_leaf(ocfs2_metadata_cache_get_super(et->et_ci),
3327 ret = ocfs2_find_path(et->et_ci, right_path, right_cpos);
3349 struct ocfs2_extent_tree *et,
3370 ret = ocfs2_get_right_path(et, left_path, &right_path);
3389 subtree_index = ocfs2_find_subtree_root(et, left_path,
3403 ret = ocfs2_path_bh_journal_access(handle, et->et_ci, right_path,
3412 ret = ocfs2_path_bh_journal_access(handle, et->et_ci,
3419 ret = ocfs2_path_bh_journal_access(handle, et->et_ci,
3432 ret = ocfs2_path_bh_journal_access(handle, et->et_ci, left_path,
3443 -ocfs2_clusters_to_blocks(ocfs2_metadata_cache_get_super(et->et_ci),
3460 static int ocfs2_get_left_path(struct ocfs2_extent_tree *et,
3473 ret = ocfs2_find_cpos_for_left_leaf(ocfs2_metadata_cache_get_super(et->et_ci),
3490 ret = ocfs2_find_path(et->et_ci, left_path, left_cpos);
3515 struct ocfs2_extent_tree *et,
3535 ret = ocfs2_get_left_path(et, right_path, &left_path);
3551 subtree_index = ocfs2_find_subtree_root(et, left_path,
3565 ret = ocfs2_path_bh_journal_access(handle, et->et_ci, right_path,
3574 ret = ocfs2_path_bh_journal_access(handle, et->et_ci,
3581 ret = ocfs2_path_bh_journal_access(handle, et->et_ci,
3594 ret = ocfs2_path_bh_journal_access(handle, et->et_ci, right_path,
3611 ocfs2_clusters_to_blocks(ocfs2_metadata_cache_get_super(et->et_ci),
3637 ret = ocfs2_remove_rightmost_path(handle, et,
3660 struct ocfs2_extent_tree *et,
3689 ret = ocfs2_rotate_tree_left(handle, et, path, dealloc);
3718 ret = ocfs2_merge_rec_right(path, handle, et, split_rec,
3740 ret = ocfs2_rotate_tree_left(handle, et, path, dealloc);
3752 ret = ocfs2_merge_rec_left(path, handle, et, rec,
3769 ret = ocfs2_rotate_tree_left(handle, et, path, dealloc);
3786 ret = ocfs2_merge_rec_left(path, handle, et,
3795 et, split_rec,
3818 ret = ocfs2_rotate_tree_left(handle, et, path,
3865 static void ocfs2_insert_at_leaf(struct ocfs2_extent_tree *et,
3880 ocfs2_subtract_from_rec(ocfs2_metadata_cache_get_super(et->et_ci),
3926 ocfs2_metadata_cache_owner(et->et_ci),
3955 struct ocfs2_extent_tree *et,
3973 ocfs2_error(ocfs2_metadata_cache_get_super(et->et_ci),
3975 (unsigned long long)ocfs2_metadata_cache_owner(et->et_ci));
3992 struct ocfs2_extent_tree *et,
4020 ret = ocfs2_find_cpos_for_left_leaf(ocfs2_metadata_cache_get_super(et->et_ci),
4029 ocfs2_metadata_cache_owner(et->et_ci),
4045 ret = ocfs2_find_path(et->et_ci, left_path,
4059 ret = ocfs2_journal_access_path(et->et_ci, handle, right_path);
4065 ocfs2_adjust_rightmost_records(handle, et, right_path, insert_rec);
4076 static void ocfs2_split_record(struct ocfs2_extent_tree *et,
4149 ocfs2_subtract_from_rec(ocfs2_metadata_cache_get_super(et->et_ci),
4163 struct ocfs2_extent_tree *et,
4185 ret = ocfs2_journal_access_path(et->et_ci, handle, left_path);
4196 ret = ocfs2_journal_access_path(et->et_ci, handle, right_path);
4208 ocfs2_split_record(et, left_path, right_path,
4220 ocfs2_insert_at_leaf(et, insert_rec, path_leaf_el(right_path),
4232 subtree_index = ocfs2_find_subtree_root(et, left_path,
4244 struct ocfs2_extent_tree *et,
4254 el = et->et_root_el;
4256 ret = ocfs2_et_root_journal_access(handle, et,
4264 ocfs2_insert_at_leaf(et, insert_rec, el, type);
4268 right_path = ocfs2_new_path_from_et(et);
4287 ret = ocfs2_find_path(et->et_ci, right_path, cpos);
4306 ret = ocfs2_rotate_tree_right(handle, et, type->ins_split,
4318 ret = ocfs2_et_root_journal_access(handle, et,
4326 ret = ocfs2_append_rec_to_path(handle, et, insert_rec,
4334 ret = ocfs2_insert_path(handle, et, left_path, right_path,
4343 ocfs2_et_update_clusters(et,
4346 ocfs2_journal_dirty(handle, et->et_root_bh);
4355 static int ocfs2_figure_merge_contig_type(struct ocfs2_extent_tree *et,
4369 struct super_block *sb = ocfs2_metadata_cache_get_super(et->et_ci);
4386 status = ocfs2_find_path(et->et_ci, left_path,
4418 ret = ocfs2_et_extent_contig(et, rec, split_rec);
4441 status = ocfs2_find_path(et->et_ci, right_path, right_cpos);
4464 contig_type = ocfs2_et_extent_contig(et, rec, split_rec);
4483 static void ocfs2_figure_contig_type(struct ocfs2_extent_tree *et,
4494 contig_type = ocfs2_et_extent_contig(et, &el->l_recs[i],
4513 if (et->et_max_leaf_clusters &&
4514 (len > et->et_max_leaf_clusters))
4576 static int ocfs2_figure_insert_type(struct ocfs2_extent_tree *et,
4590 el = et->et_root_el;
4600 ret = ocfs2_read_extent_block(et->et_ci,
4601 ocfs2_et_get_last_eb_blk(et),
4623 ocfs2_figure_contig_type(et, insert, el, insert_rec);
4628 path = ocfs2_new_path_from_et(et);
4641 ret = ocfs2_find_path(et->et_ci, path, le32_to_cpu(insert_rec->e_cpos));
4657 ocfs2_figure_contig_type(et, insert, el, insert_rec);
4678 if (ocfs2_et_get_last_eb_blk(et) ==
4707 struct ocfs2_extent_tree *et,
4721 (unsigned long long)ocfs2_metadata_cache_owner(et->et_ci),
4729 status = ocfs2_et_insert_check(et, &rec);
4735 status = ocfs2_figure_insert_type(et, &last_eb_bh, &rec,
4747 status = ocfs2_grow_tree(handle, et,
4757 status = ocfs2_do_insert_extent(handle, et, &rec, &insert);
4761 ocfs2_et_extent_map_insert(et, &rec);
4772 * The extent b-tree's root is specified by et, and
4777 struct ocfs2_extent_tree *et,
4793 OCFS2_SB(ocfs2_metadata_cache_get_super(et->et_ci));
4800 free_extents = ocfs2_num_free_extents(et);
4819 < ocfs2_extend_meta_needed(et->et_root_el))) {
4837 status = ocfs2_et_root_journal_access(handle, et,
4847 (unsigned long long)ocfs2_metadata_cache_owner(et->et_ci),
4849 status = ocfs2_insert_extent(handle, et, *logical_offset, block,
4857 ocfs2_journal_dirty(handle, et->et_root_bh);
4909 struct ocfs2_extent_tree *et,
4932 rightmost_el = et->et_root_el;
4943 ret = ocfs2_grow_tree(handle, et,
4972 ocfs2_make_right_split_rec(ocfs2_metadata_cache_get_super(et->et_ci),
4981 ret = ocfs2_do_insert_extent(handle, et, &split_rec, &insert);
4997 ret = ocfs2_find_path(et->et_ci, path, cpos);
5006 ocfs2_error(ocfs2_metadata_cache_get_super(et->et_ci),
5008 (unsigned long long)ocfs2_metadata_cache_owner(et->et_ci),
5021 struct ocfs2_extent_tree *et,
5029 ret = ocfs2_path_bh_journal_access(handle, et->et_ci, path,
5063 struct ocfs2_extent_tree *et,
5084 ret = ocfs2_figure_merge_contig_type(et, path, el,
5099 ret = ocfs2_read_extent_block(et->et_ci,
5100 ocfs2_et_get_last_eb_blk(et),
5122 ret = ocfs2_replace_extent_rec(handle, et, path, el,
5125 ret = ocfs2_split_and_insert(handle, et, path,
5131 ret = ocfs2_try_to_merge_extent(handle, et, path,
5156 struct ocfs2_extent_tree *et,
5163 struct super_block *sb = ocfs2_metadata_cache_get_super(et->et_ci);
5170 left_path = ocfs2_new_path_from_et(et);
5177 ret = ocfs2_find_path(et->et_ci, left_path, cpos);
5188 (unsigned long long)ocfs2_metadata_cache_owner(et->et_ci),
5199 (unsigned long long)ocfs2_metadata_cache_owner(et->et_ci),
5207 (unsigned long long)ocfs2_metadata_cache_owner(et->et_ci),
5222 ret = ocfs2_split_extent(handle, et, left_path,
5244 struct ocfs2_extent_tree *et,
5266 ocfs2_et_extent_map_truncate(et, 0);
5268 ret = ocfs2_change_extent_flag(handle, et, cpos,
5278 static int ocfs2_split_tree(handle_t *handle, struct ocfs2_extent_tree *et,
5296 ocfs2_make_right_split_rec(ocfs2_metadata_cache_get_super(et->et_ci),
5301 ret = ocfs2_read_extent_block(et->et_ci,
5302 ocfs2_et_get_last_eb_blk(et),
5315 ocfs2_extend_meta_needed(et->et_root_el);
5324 ret = ocfs2_grow_tree(handle, et, &depth, &last_eb_bh,
5338 ret = ocfs2_do_insert_extent(handle, et, &split_rec, &insert);
5348 struct ocfs2_extent_tree *et,
5356 struct super_block *sb = ocfs2_metadata_cache_get_super(et->et_ci);
5372 ret = ocfs2_rotate_tree_left(handle, et, path, dealloc);
5424 ret = ocfs2_find_path(et->et_ci, left_path,
5441 ret = ocfs2_journal_access_path(et->et_ci, handle, path);
5447 ret = ocfs2_journal_access_path(et->et_ci, handle, left_path);
5469 ocfs2_adjust_rightmost_records(handle, et, path,
5481 ocfs2_adjust_rightmost_records(handle, et, path, rec);
5486 (unsigned long long)ocfs2_metadata_cache_owner(et->et_ci),
5495 subtree_index = ocfs2_find_subtree_root(et, left_path, path);
5502 ret = ocfs2_rotate_tree_left(handle, et, path, dealloc);
5512 struct ocfs2_extent_tree *et,
5527 ocfs2_et_extent_map_truncate(et, 0);
5529 path = ocfs2_new_path_from_et(et);
5536 ret = ocfs2_find_path(et->et_ci, path, cpos);
5545 ocfs2_error(ocfs2_metadata_cache_get_super(et->et_ci),
5547 (unsigned long long)ocfs2_metadata_cache_owner(et->et_ci),
5576 (unsigned long long)ocfs2_metadata_cache_owner(et->et_ci),
5581 ret = ocfs2_truncate_rec(handle, et, path, index, dealloc,
5588 ret = ocfs2_split_tree(handle, et, path, index,
5601 ret = ocfs2_find_path(et->et_ci, path, cpos);
5610 ocfs2_error(ocfs2_metadata_cache_get_super(et->et_ci),
5612 (unsigned long long)ocfs2_metadata_cache_owner(et->et_ci),
5626 ocfs2_error(ocfs2_metadata_cache_get_super(et->et_ci),
5628 (unsigned long long)ocfs2_metadata_cache_owner(et->et_ci),
5635 ret = ocfs2_truncate_rec(handle, et, path, index, dealloc,
5656 struct ocfs2_extent_tree *et,
5667 num_free_extents = ocfs2_num_free_extents(et);
5676 extra_blocks += ocfs2_extend_meta_needed(et->et_root_el);
5698 struct ocfs2_extent_tree *et,
5735 ret = ocfs2_reserve_blocks_for_rec_trunc(inode, et, 1, &meta_ac,
5760 ret = ocfs2_et_root_journal_access(handle, et,
5770 ret = ocfs2_remove_extent(handle, et, cpos, len, meta_ac, dealloc);
5776 ocfs2_et_update_clusters(et, -len);
5779 ocfs2_journal_dirty(handle, et->et_root_bh);
6635 static int ocfs2_is_dealloc_empty(struct ocfs2_extent_tree *et)
6639 if (!et->et_dealloc)
6642 fl = et->et_dealloc->c_first_suballocator;
6659 struct ocfs2_extent_tree *et,
6669 OCFS2_SB(ocfs2_metadata_cache_get_super(et->et_ci));
6677 dealloc = et->et_dealloc;
6708 ocfs2_set_new_buffer_uptodate(et->et_ci, new_eb_bh[i]);
6710 status = ocfs2_journal_access_eb(handle, et->et_ci,
7072 struct ocfs2_extent_tree et;
7165 ocfs2_init_dinode_extent_tree(&et, INODE_CACHE(inode), di_bh);
7166 ret = ocfs2_insert_extent(handle, &et, 0, block, 1, 0, NULL);
7224 struct ocfs2_extent_tree et;
7228 ocfs2_init_dinode_extent_tree(&et, INODE_CACHE(inode), di_bh);
7304 &et, path, &dealloc);
7353 status = ocfs2_remove_btree_range(inode, &et, trunc_cpos,