Lines Matching refs:et
71 void (*eo_set_last_eb_blk)(struct ocfs2_extent_tree *et,
73 u64 (*eo_get_last_eb_blk)(struct ocfs2_extent_tree *et);
81 void (*eo_update_clusters)(struct ocfs2_extent_tree *et,
88 void (*eo_extent_map_insert)(struct ocfs2_extent_tree *et,
95 void (*eo_extent_map_truncate)(struct ocfs2_extent_tree *et,
102 int (*eo_insert_check)(struct ocfs2_extent_tree *et,
104 int (*eo_sanity_check)(struct ocfs2_extent_tree *et);
113 * ->eo_fill_root_el() takes et->et_object and sets et->et_root_el.
116 void (*eo_fill_root_el)(struct ocfs2_extent_tree *et);
119 * ->eo_fill_max_leaf_clusters sets et->et_max_leaf_clusters if
120 * it exists. If it does not, et->et_max_leaf_clusters is set
123 void (*eo_fill_max_leaf_clusters)(struct ocfs2_extent_tree *et);
131 (*eo_extent_contig)(struct ocfs2_extent_tree *et,
141 static u64 ocfs2_dinode_get_last_eb_blk(struct ocfs2_extent_tree *et);
142 static void ocfs2_dinode_set_last_eb_blk(struct ocfs2_extent_tree *et,
144 static void ocfs2_dinode_update_clusters(struct ocfs2_extent_tree *et,
146 static void ocfs2_dinode_extent_map_insert(struct ocfs2_extent_tree *et,
148 static void ocfs2_dinode_extent_map_truncate(struct ocfs2_extent_tree *et,
150 static int ocfs2_dinode_insert_check(struct ocfs2_extent_tree *et,
152 static int ocfs2_dinode_sanity_check(struct ocfs2_extent_tree *et);
153 static void ocfs2_dinode_fill_root_el(struct ocfs2_extent_tree *et);
156 struct ocfs2_extent_tree *et,
159 static int ocfs2_is_dealloc_empty(struct ocfs2_extent_tree *et);
172 static void ocfs2_dinode_set_last_eb_blk(struct ocfs2_extent_tree *et,
175 struct ocfs2_dinode *di = et->et_object;
177 BUG_ON(et->et_ops != &ocfs2_dinode_et_ops);
181 static u64 ocfs2_dinode_get_last_eb_blk(struct ocfs2_extent_tree *et)
183 struct ocfs2_dinode *di = et->et_object;
185 BUG_ON(et->et_ops != &ocfs2_dinode_et_ops);
189 static void ocfs2_dinode_update_clusters(struct ocfs2_extent_tree *et,
192 struct ocfs2_inode_info *oi = cache_info_to_inode(et->et_ci);
193 struct ocfs2_dinode *di = et->et_object;
201 static void ocfs2_dinode_extent_map_insert(struct ocfs2_extent_tree *et,
204 struct inode *inode = &cache_info_to_inode(et->et_ci)->vfs_inode;
209 static void ocfs2_dinode_extent_map_truncate(struct ocfs2_extent_tree *et,
212 struct inode *inode = &cache_info_to_inode(et->et_ci)->vfs_inode;
217 static int ocfs2_dinode_insert_check(struct ocfs2_extent_tree *et,
220 struct ocfs2_inode_info *oi = cache_info_to_inode(et->et_ci);
235 static int ocfs2_dinode_sanity_check(struct ocfs2_extent_tree *et)
237 struct ocfs2_dinode *di = et->et_object;
239 BUG_ON(et->et_ops != &ocfs2_dinode_et_ops);
245 static void ocfs2_dinode_fill_root_el(struct ocfs2_extent_tree *et)
247 struct ocfs2_dinode *di = et->et_object;
249 et->et_root_el = &di->id2.i_list;
253 static void ocfs2_xattr_value_fill_root_el(struct ocfs2_extent_tree *et)
255 struct ocfs2_xattr_value_buf *vb = et->et_object;
257 et->et_root_el = &vb->vb_xv->xr_list;
260 static void ocfs2_xattr_value_set_last_eb_blk(struct ocfs2_extent_tree *et,
263 struct ocfs2_xattr_value_buf *vb = et->et_object;
268 static u64 ocfs2_xattr_value_get_last_eb_blk(struct ocfs2_extent_tree *et)
270 struct ocfs2_xattr_value_buf *vb = et->et_object;
275 static void ocfs2_xattr_value_update_clusters(struct ocfs2_extent_tree *et,
278 struct ocfs2_xattr_value_buf *vb = et->et_object;
290 static void ocfs2_xattr_tree_fill_root_el(struct ocfs2_extent_tree *et)
292 struct ocfs2_xattr_block *xb = et->et_object;
294 et->et_root_el = &xb->xb_attrs.xb_root.xt_list;
297 static void ocfs2_xattr_tree_fill_max_leaf_clusters(struct ocfs2_extent_tree *et)
299 struct super_block *sb = ocfs2_metadata_cache_get_super(et->et_ci);
300 et->et_max_leaf_clusters =
304 static void ocfs2_xattr_tree_set_last_eb_blk(struct ocfs2_extent_tree *et,
307 struct ocfs2_xattr_block *xb = et->et_object;
313 static u64 ocfs2_xattr_tree_get_last_eb_blk(struct ocfs2_extent_tree *et)
315 struct ocfs2_xattr_block *xb = et->et_object;
321 static void ocfs2_xattr_tree_update_clusters(struct ocfs2_extent_tree *et,
324 struct ocfs2_xattr_block *xb = et->et_object;
337 static void ocfs2_dx_root_set_last_eb_blk(struct ocfs2_extent_tree *et,
340 struct ocfs2_dx_root_block *dx_root = et->et_object;
345 static u64 ocfs2_dx_root_get_last_eb_blk(struct ocfs2_extent_tree *et)
347 struct ocfs2_dx_root_block *dx_root = et->et_object;
352 static void ocfs2_dx_root_update_clusters(struct ocfs2_extent_tree *et,
355 struct ocfs2_dx_root_block *dx_root = et->et_object;
360 static int ocfs2_dx_root_sanity_check(struct ocfs2_extent_tree *et)
362 struct ocfs2_dx_root_block *dx_root = et->et_object;
369 static void ocfs2_dx_root_fill_root_el(struct ocfs2_extent_tree *et)
371 struct ocfs2_dx_root_block *dx_root = et->et_object;
373 et->et_root_el = &dx_root->dr_list;
384 static void ocfs2_refcount_tree_fill_root_el(struct ocfs2_extent_tree *et)
386 struct ocfs2_refcount_block *rb = et->et_object;
388 et->et_root_el = &rb->rf_list;
391 static void ocfs2_refcount_tree_set_last_eb_blk(struct ocfs2_extent_tree *et,
394 struct ocfs2_refcount_block *rb = et->et_object;
399 static u64 ocfs2_refcount_tree_get_last_eb_blk(struct ocfs2_extent_tree *et)
401 struct ocfs2_refcount_block *rb = et->et_object;
406 static void ocfs2_refcount_tree_update_clusters(struct ocfs2_extent_tree *et,
409 struct ocfs2_refcount_block *rb = et->et_object;
415 ocfs2_refcount_tree_extent_contig(struct ocfs2_extent_tree *et,
430 static void __ocfs2_init_extent_tree(struct ocfs2_extent_tree *et,
437 et->et_ops = ops;
438 et->et_root_bh = bh;
439 et->et_ci = ci;
440 et->et_root_journal_access = access;
443 et->et_object = obj;
444 et->et_dealloc = NULL;
446 et->et_ops->eo_fill_root_el(et);
447 if (!et->et_ops->eo_fill_max_leaf_clusters)
448 et->et_max_leaf_clusters = 0;
450 et->et_ops->eo_fill_max_leaf_clusters(et);
453 void ocfs2_init_dinode_extent_tree(struct ocfs2_extent_tree *et,
457 __ocfs2_init_extent_tree(et, ci, bh, ocfs2_journal_access_di,
461 void ocfs2_init_xattr_tree_extent_tree(struct ocfs2_extent_tree *et,
465 __ocfs2_init_extent_tree(et, ci, bh, ocfs2_journal_access_xb,
469 void ocfs2_init_xattr_value_extent_tree(struct ocfs2_extent_tree *et,
473 __ocfs2_init_extent_tree(et, ci, vb->vb_bh, vb->vb_access, vb,
477 void ocfs2_init_dx_root_extent_tree(struct ocfs2_extent_tree *et,
481 __ocfs2_init_extent_tree(et, ci, bh, ocfs2_journal_access_dr,
485 void ocfs2_init_refcount_extent_tree(struct ocfs2_extent_tree *et,
489 __ocfs2_init_extent_tree(et, ci, bh, ocfs2_journal_access_rb,
493 static inline void ocfs2_et_set_last_eb_blk(struct ocfs2_extent_tree *et,
496 et->et_ops->eo_set_last_eb_blk(et, new_last_eb_blk);
499 static inline u64 ocfs2_et_get_last_eb_blk(struct ocfs2_extent_tree *et)
501 return et->et_ops->eo_get_last_eb_blk(et);
504 static inline void ocfs2_et_update_clusters(struct ocfs2_extent_tree *et,
507 et->et_ops->eo_update_clusters(et, clusters);
510 static inline void ocfs2_et_extent_map_insert(struct ocfs2_extent_tree *et,
513 if (et->et_ops->eo_extent_map_insert)
514 et->et_ops->eo_extent_map_insert(et, rec);
517 static inline void ocfs2_et_extent_map_truncate(struct ocfs2_extent_tree *et,
520 if (et->et_ops->eo_extent_map_truncate)
521 et->et_ops->eo_extent_map_truncate(et, clusters);
525 struct ocfs2_extent_tree *et,
528 return et->et_root_journal_access(handle, et->et_ci, et->et_root_bh,
533 ocfs2_et_extent_contig(struct ocfs2_extent_tree *et,
537 if (et->et_ops->eo_extent_contig)
538 return et->et_ops->eo_extent_contig(et, rec, insert_rec);
541 ocfs2_metadata_cache_get_super(et->et_ci),
545 static inline int ocfs2_et_insert_check(struct ocfs2_extent_tree *et,
550 if (et->et_ops->eo_insert_check)
551 ret = et->et_ops->eo_insert_check(et, rec);
555 static inline int ocfs2_et_sanity_check(struct ocfs2_extent_tree *et)
559 if (et->et_ops->eo_sanity_check)
560 ret = et->et_ops->eo_sanity_check(et);
567 struct ocfs2_extent_tree *et,
708 struct ocfs2_path *ocfs2_new_path_from_et(struct ocfs2_extent_tree *et)
710 return ocfs2_new_path(et->et_root_bh, et->et_root_el,
711 et->et_root_journal_access);
950 int ocfs2_num_free_extents(struct ocfs2_extent_tree *et)
958 el = et->et_root_el;
959 last_eb_blk = ocfs2_et_get_last_eb_blk(et);
962 retval = ocfs2_read_extent_block(et->et_ci, last_eb_blk,
988 struct ocfs2_extent_tree *et,
998 OCFS2_SB(ocfs2_metadata_cache_get_super(et->et_ci));
1022 ocfs2_set_new_buffer_uptodate(et->et_ci, bhs[i]);
1024 status = ocfs2_journal_access_eb(handle, et->et_ci,
1094 struct ocfs2_extent_tree *et)
1101 path = ocfs2_new_path_from_et(et);
1107 status = ocfs2_find_path(et->et_ci, path, UINT_MAX);
1119 status = ocfs2_journal_access_path(et->et_ci, handle, path);
1128 ocfs2_adjust_rightmost_records(handle, et, path, rec);
1147 struct ocfs2_extent_tree *et,
1167 el = et->et_root_el;
1176 root_end = ocfs2_sum_rightmost_rec(et->et_root_el);
1188 ocfs2_metadata_cache_owner(et->et_ci),
1191 status = ocfs2_adjust_rightmost_branch(handle, et);
1210 if (!ocfs2_is_dealloc_empty(et)) {
1211 status = ocfs2_reuse_blk_from_dealloc(handle, et,
1224 status = ocfs2_create_new_meta_bhs(handle, et,
1249 status = ocfs2_journal_access_eb(handle, et->et_ci, bh,
1284 status = ocfs2_journal_access_eb(handle, et->et_ci, *last_eb_bh,
1290 status = ocfs2_et_root_journal_access(handle, et,
1297 status = ocfs2_journal_access_eb(handle, et->et_ci, eb_bh,
1315 ocfs2_et_set_last_eb_blk(et, new_last_eb_blk);
1321 ocfs2_journal_dirty(handle, et->et_root_bh);
1350 struct ocfs2_extent_tree *et,
1361 if (!ocfs2_is_dealloc_empty(et)) {
1362 status = ocfs2_reuse_blk_from_dealloc(handle, et,
1366 status = ocfs2_create_new_meta_bhs(handle, et, 1, meta_ac,
1383 root_el = et->et_root_el;
1385 status = ocfs2_journal_access_eb(handle, et->et_ci, new_eb_bh,
1400 status = ocfs2_et_root_journal_access(handle, et,
1421 ocfs2_et_set_last_eb_blk(et, le64_to_cpu(eb->h_blkno));
1423 ocfs2_journal_dirty(handle, et->et_root_bh);
1451 static int ocfs2_find_branch_target(struct ocfs2_extent_tree *et,
1463 el = et->et_root_el;
1467 status = ocfs2_error(ocfs2_metadata_cache_get_super(et->et_ci),
1469 (unsigned long long)ocfs2_metadata_cache_owner(et->et_ci));
1475 status = ocfs2_error(ocfs2_metadata_cache_get_super(et->et_ci),
1477 (unsigned long long)ocfs2_metadata_cache_owner(et->et_ci), i);
1484 status = ocfs2_read_extent_block(et->et_ci, blkno, &bh);
1503 el = et->et_root_el;
1524 static int ocfs2_grow_tree(handle_t *handle, struct ocfs2_extent_tree *et,
1529 struct ocfs2_extent_list *el = et->et_root_el;
1533 BUG_ON(meta_ac == NULL && ocfs2_is_dealloc_empty(et));
1535 shift = ocfs2_find_branch_target(et, &bh);
1549 ocfs2_metadata_cache_owner(et->et_ci),
1555 ret = ocfs2_shift_tree_depth(handle, et, meta_ac, &bh);
1580 ret = ocfs2_add_branch(handle, et, bh, last_eb_bh,
1749 int ocfs2_find_subtree_root(struct ocfs2_extent_tree *et,
1769 (unsigned long long)ocfs2_metadata_cache_owner(et->et_ci),
2108 struct ocfs2_extent_tree *et,
2124 ocfs2_error(ocfs2_metadata_cache_get_super(et->et_ci),
2126 (unsigned long long)ocfs2_metadata_cache_owner(et->et_ci),
2142 ret = ocfs2_path_bh_journal_access(handle, et->et_ci, right_path,
2150 ret = ocfs2_path_bh_journal_access(handle, et->et_ci,
2157 ret = ocfs2_path_bh_journal_access(handle, et->et_ci,
2171 (unsigned long long)ocfs2_metadata_cache_owner(et->et_ci),
2363 struct ocfs2_extent_tree *et,
2372 struct super_block *sb = ocfs2_metadata_cache_get_super(et->et_ci);
2390 (unsigned long long)ocfs2_metadata_cache_owner(et->et_ci),
2422 ocfs2_metadata_cache_owner(et->et_ci),
2425 ret = ocfs2_find_path(et->et_ci, left_path, cpos);
2436 (unsigned long long)ocfs2_metadata_cache_owner(et->et_ci),
2463 start = ocfs2_find_subtree_root(et, left_path, right_path);
2477 ret = ocfs2_rotate_subtree_right(handle, et, left_path,
2524 struct ocfs2_extent_tree *et,
2533 ret = ocfs2_journal_access_path(et->et_ci, handle, path);
2564 struct ocfs2_extent_tree *et,
2586 (unsigned long long)ocfs2_metadata_cache_owner(et->et_ci),
2591 ocfs2_remove_from_cache(et->et_ci, bh);
2604 ocfs2_remove_from_cache(et->et_ci, bh);
2609 struct ocfs2_extent_tree *et,
2637 ocfs2_unlink_path(handle, et, dealloc, right_path,
2642 struct ocfs2_extent_tree *et,
2683 ret = ocfs2_journal_access_eb(handle, et->et_ci,
2702 ret = ocfs2_et_root_journal_access(handle, et,
2718 ret = ocfs2_path_bh_journal_access(handle, et->et_ci, right_path,
2726 ret = ocfs2_path_bh_journal_access(handle, et->et_ci,
2733 ret = ocfs2_path_bh_journal_access(handle, et->et_ci,
2766 ocfs2_unlink_subtree(handle, et, left_path, right_path,
2768 ret = ocfs2_update_edge_lengths(handle, et, left_path);
2775 ocfs2_et_set_last_eb_blk(et, le64_to_cpu(eb->h_blkno));
2875 struct ocfs2_extent_tree *et,
2885 ret = ocfs2_path_bh_journal_access(handle, et->et_ci, path,
2900 struct ocfs2_extent_tree *et,
2910 struct super_block *sb = ocfs2_metadata_cache_get_super(et->et_ci);
2940 ret = ocfs2_find_path(et->et_ci, right_path, right_cpos);
2946 subtree_root = ocfs2_find_subtree_root(et, left_path,
2965 ret = ocfs2_path_bh_journal_access(handle, et->et_ci,
2972 ret = ocfs2_rotate_subtree_left(handle, et, left_path,
3017 struct ocfs2_extent_tree *et,
3027 ret = ocfs2_et_sanity_check(et);
3031 ret = ocfs2_journal_access_path(et->et_ci, handle, path);
3037 ret = ocfs2_find_cpos_for_left_leaf(ocfs2_metadata_cache_get_super(et->et_ci),
3056 ret = ocfs2_find_path(et->et_ci, left_path, cpos);
3062 ret = ocfs2_journal_access_path(et->et_ci, handle, left_path);
3068 subtree_index = ocfs2_find_subtree_root(et, left_path, path);
3070 ocfs2_unlink_subtree(handle, et, left_path, path,
3072 ret = ocfs2_update_edge_lengths(handle, et, left_path);
3079 ocfs2_et_set_last_eb_blk(et, le64_to_cpu(eb->h_blkno));
3088 ocfs2_unlink_path(handle, et, dealloc, path, 1);
3090 el = et->et_root_el;
3095 ocfs2_et_set_last_eb_blk(et, 0);
3106 struct ocfs2_extent_tree *et,
3121 ret = ocfs2_remove_rightmost_path(handle, et, path, dealloc);
3146 struct ocfs2_extent_tree *et,
3165 ret = ocfs2_rotate_rightmost_leaf_left(handle, et, path);
3196 ret = ocfs2_error(ocfs2_metadata_cache_get_super(et->et_ci),
3198 (unsigned long long)ocfs2_metadata_cache_owner(et->et_ci),
3212 ret = ocfs2_remove_rightmost_path(handle, et, path,
3224 ret = __ocfs2_rotate_tree_left(handle, et, orig_credits, path,
3235 ret = __ocfs2_rotate_tree_left(handle, et, orig_credits,
3288 static int ocfs2_get_right_path(struct ocfs2_extent_tree *et,
3305 ret = ocfs2_find_cpos_for_right_leaf(ocfs2_metadata_cache_get_super(et->et_ci),
3322 ret = ocfs2_find_path(et->et_ci, right_path, right_cpos);
3344 struct ocfs2_extent_tree *et,
3365 ret = ocfs2_get_right_path(et, left_path, &right_path);
3384 subtree_index = ocfs2_find_subtree_root(et, left_path,
3398 ret = ocfs2_path_bh_journal_access(handle, et->et_ci, right_path,
3407 ret = ocfs2_path_bh_journal_access(handle, et->et_ci,
3414 ret = ocfs2_path_bh_journal_access(handle, et->et_ci,
3427 ret = ocfs2_path_bh_journal_access(handle, et->et_ci, left_path,
3438 -ocfs2_clusters_to_blocks(ocfs2_metadata_cache_get_super(et->et_ci),
3455 static int ocfs2_get_left_path(struct ocfs2_extent_tree *et,
3468 ret = ocfs2_find_cpos_for_left_leaf(ocfs2_metadata_cache_get_super(et->et_ci),
3485 ret = ocfs2_find_path(et->et_ci, left_path, left_cpos);
3510 struct ocfs2_extent_tree *et,
3530 ret = ocfs2_get_left_path(et, right_path, &left_path);
3546 subtree_index = ocfs2_find_subtree_root(et, left_path,
3560 ret = ocfs2_path_bh_journal_access(handle, et->et_ci, right_path,
3569 ret = ocfs2_path_bh_journal_access(handle, et->et_ci,
3576 ret = ocfs2_path_bh_journal_access(handle, et->et_ci,
3589 ret = ocfs2_path_bh_journal_access(handle, et->et_ci, right_path,
3606 ocfs2_clusters_to_blocks(ocfs2_metadata_cache_get_super(et->et_ci),
3632 ret = ocfs2_remove_rightmost_path(handle, et,
3655 struct ocfs2_extent_tree *et,
3684 ret = ocfs2_rotate_tree_left(handle, et, path, dealloc);
3713 ret = ocfs2_merge_rec_right(path, handle, et, split_rec,
3735 ret = ocfs2_rotate_tree_left(handle, et, path, dealloc);
3747 ret = ocfs2_merge_rec_left(path, handle, et, rec,
3764 ret = ocfs2_rotate_tree_left(handle, et, path, dealloc);
3781 ret = ocfs2_merge_rec_left(path, handle, et,
3790 et, split_rec,
3813 ret = ocfs2_rotate_tree_left(handle, et, path,
3860 static void ocfs2_insert_at_leaf(struct ocfs2_extent_tree *et,
3875 ocfs2_subtract_from_rec(ocfs2_metadata_cache_get_super(et->et_ci),
3921 ocfs2_metadata_cache_owner(et->et_ci),
3950 struct ocfs2_extent_tree *et,
3968 ocfs2_error(ocfs2_metadata_cache_get_super(et->et_ci),
3970 (unsigned long long)ocfs2_metadata_cache_owner(et->et_ci));
3987 struct ocfs2_extent_tree *et,
4015 ret = ocfs2_find_cpos_for_left_leaf(ocfs2_metadata_cache_get_super(et->et_ci),
4024 ocfs2_metadata_cache_owner(et->et_ci),
4040 ret = ocfs2_find_path(et->et_ci, left_path,
4054 ret = ocfs2_journal_access_path(et->et_ci, handle, right_path);
4060 ocfs2_adjust_rightmost_records(handle, et, right_path, insert_rec);
4071 static void ocfs2_split_record(struct ocfs2_extent_tree *et,
4144 ocfs2_subtract_from_rec(ocfs2_metadata_cache_get_super(et->et_ci),
4158 struct ocfs2_extent_tree *et,
4180 ret = ocfs2_journal_access_path(et->et_ci, handle, left_path);
4191 ret = ocfs2_journal_access_path(et->et_ci, handle, right_path);
4203 ocfs2_split_record(et, left_path, right_path,
4215 ocfs2_insert_at_leaf(et, insert_rec, path_leaf_el(right_path),
4227 subtree_index = ocfs2_find_subtree_root(et, left_path,
4239 struct ocfs2_extent_tree *et,
4249 el = et->et_root_el;
4251 ret = ocfs2_et_root_journal_access(handle, et,
4259 ocfs2_insert_at_leaf(et, insert_rec, el, type);
4263 right_path = ocfs2_new_path_from_et(et);
4282 ret = ocfs2_find_path(et->et_ci, right_path, cpos);
4301 ret = ocfs2_rotate_tree_right(handle, et, type->ins_split,
4313 ret = ocfs2_et_root_journal_access(handle, et,
4321 ret = ocfs2_append_rec_to_path(handle, et, insert_rec,
4329 ret = ocfs2_insert_path(handle, et, left_path, right_path,
4338 ocfs2_et_update_clusters(et,
4341 ocfs2_journal_dirty(handle, et->et_root_bh);
4350 static int ocfs2_figure_merge_contig_type(struct ocfs2_extent_tree *et,
4364 struct super_block *sb = ocfs2_metadata_cache_get_super(et->et_ci);
4381 status = ocfs2_find_path(et->et_ci, left_path,
4413 ret = ocfs2_et_extent_contig(et, rec, split_rec);
4436 status = ocfs2_find_path(et->et_ci, right_path, right_cpos);
4459 contig_type = ocfs2_et_extent_contig(et, rec, split_rec);
4478 static void ocfs2_figure_contig_type(struct ocfs2_extent_tree *et,
4489 contig_type = ocfs2_et_extent_contig(et, &el->l_recs[i],
4508 if (et->et_max_leaf_clusters &&
4509 (len > et->et_max_leaf_clusters))
4571 static int ocfs2_figure_insert_type(struct ocfs2_extent_tree *et,
4585 el = et->et_root_el;
4595 ret = ocfs2_read_extent_block(et->et_ci,
4596 ocfs2_et_get_last_eb_blk(et),
4618 ocfs2_figure_contig_type(et, insert, el, insert_rec);
4623 path = ocfs2_new_path_from_et(et);
4636 ret = ocfs2_find_path(et->et_ci, path, le32_to_cpu(insert_rec->e_cpos));
4652 ocfs2_figure_contig_type(et, insert, el, insert_rec);
4673 if (ocfs2_et_get_last_eb_blk(et) ==
4702 struct ocfs2_extent_tree *et,
4716 (unsigned long long)ocfs2_metadata_cache_owner(et->et_ci),
4724 status = ocfs2_et_insert_check(et, &rec);
4730 status = ocfs2_figure_insert_type(et, &last_eb_bh, &rec,
4742 status = ocfs2_grow_tree(handle, et,
4752 status = ocfs2_do_insert_extent(handle, et, &rec, &insert);
4756 ocfs2_et_extent_map_insert(et, &rec);
4767 * The extent b-tree's root is specified by et, and
4772 struct ocfs2_extent_tree *et,
4788 OCFS2_SB(ocfs2_metadata_cache_get_super(et->et_ci));
4795 free_extents = ocfs2_num_free_extents(et);
4814 < ocfs2_extend_meta_needed(et->et_root_el))) {
4832 status = ocfs2_et_root_journal_access(handle, et,
4842 (unsigned long long)ocfs2_metadata_cache_owner(et->et_ci),
4844 status = ocfs2_insert_extent(handle, et, *logical_offset, block,
4852 ocfs2_journal_dirty(handle, et->et_root_bh);
4904 struct ocfs2_extent_tree *et,
4927 rightmost_el = et->et_root_el;
4938 ret = ocfs2_grow_tree(handle, et,
4967 ocfs2_make_right_split_rec(ocfs2_metadata_cache_get_super(et->et_ci),
4976 ret = ocfs2_do_insert_extent(handle, et, &split_rec, &insert);
4992 ret = ocfs2_find_path(et->et_ci, path, cpos);
5001 ocfs2_error(ocfs2_metadata_cache_get_super(et->et_ci),
5003 (unsigned long long)ocfs2_metadata_cache_owner(et->et_ci),
5016 struct ocfs2_extent_tree *et,
5024 ret = ocfs2_path_bh_journal_access(handle, et->et_ci, path,
5058 struct ocfs2_extent_tree *et,
5079 ret = ocfs2_figure_merge_contig_type(et, path, el,
5094 ret = ocfs2_read_extent_block(et->et_ci,
5095 ocfs2_et_get_last_eb_blk(et),
5117 ret = ocfs2_replace_extent_rec(handle, et, path, el,
5120 ret = ocfs2_split_and_insert(handle, et, path,
5126 ret = ocfs2_try_to_merge_extent(handle, et, path,
5151 struct ocfs2_extent_tree *et,
5158 struct super_block *sb = ocfs2_metadata_cache_get_super(et->et_ci);
5165 left_path = ocfs2_new_path_from_et(et);
5172 ret = ocfs2_find_path(et->et_ci, left_path, cpos);
5183 (unsigned long long)ocfs2_metadata_cache_owner(et->et_ci),
5194 (unsigned long long)ocfs2_metadata_cache_owner(et->et_ci),
5202 (unsigned long long)ocfs2_metadata_cache_owner(et->et_ci),
5217 ret = ocfs2_split_extent(handle, et, left_path,
5239 struct ocfs2_extent_tree *et,
5261 ocfs2_et_extent_map_truncate(et, 0);
5263 ret = ocfs2_change_extent_flag(handle, et, cpos,
5273 static int ocfs2_split_tree(handle_t *handle, struct ocfs2_extent_tree *et,
5291 ocfs2_make_right_split_rec(ocfs2_metadata_cache_get_super(et->et_ci),
5296 ret = ocfs2_read_extent_block(et->et_ci,
5297 ocfs2_et_get_last_eb_blk(et),
5310 ocfs2_extend_meta_needed(et->et_root_el);
5319 ret = ocfs2_grow_tree(handle, et, &depth, &last_eb_bh,
5333 ret = ocfs2_do_insert_extent(handle, et, &split_rec, &insert);
5343 struct ocfs2_extent_tree *et,
5351 struct super_block *sb = ocfs2_metadata_cache_get_super(et->et_ci);
5367 ret = ocfs2_rotate_tree_left(handle, et, path, dealloc);
5419 ret = ocfs2_find_path(et->et_ci, left_path,
5436 ret = ocfs2_journal_access_path(et->et_ci, handle, path);
5442 ret = ocfs2_journal_access_path(et->et_ci, handle, left_path);
5464 ocfs2_adjust_rightmost_records(handle, et, path,
5476 ocfs2_adjust_rightmost_records(handle, et, path, rec);
5481 (unsigned long long)ocfs2_metadata_cache_owner(et->et_ci),
5490 subtree_index = ocfs2_find_subtree_root(et, left_path, path);
5497 ret = ocfs2_rotate_tree_left(handle, et, path, dealloc);
5507 struct ocfs2_extent_tree *et,
5522 ocfs2_et_extent_map_truncate(et, 0);
5524 path = ocfs2_new_path_from_et(et);
5531 ret = ocfs2_find_path(et->et_ci, path, cpos);
5540 ocfs2_error(ocfs2_metadata_cache_get_super(et->et_ci),
5542 (unsigned long long)ocfs2_metadata_cache_owner(et->et_ci),
5571 (unsigned long long)ocfs2_metadata_cache_owner(et->et_ci),
5576 ret = ocfs2_truncate_rec(handle, et, path, index, dealloc,
5583 ret = ocfs2_split_tree(handle, et, path, index,
5596 ret = ocfs2_find_path(et->et_ci, path, cpos);
5605 ocfs2_error(ocfs2_metadata_cache_get_super(et->et_ci),
5607 (unsigned long long)ocfs2_metadata_cache_owner(et->et_ci),
5621 ocfs2_error(ocfs2_metadata_cache_get_super(et->et_ci),
5623 (unsigned long long)ocfs2_metadata_cache_owner(et->et_ci),
5630 ret = ocfs2_truncate_rec(handle, et, path, index, dealloc,
5651 struct ocfs2_extent_tree *et,
5662 num_free_extents = ocfs2_num_free_extents(et);
5671 extra_blocks += ocfs2_extend_meta_needed(et->et_root_el);
5693 struct ocfs2_extent_tree *et,
5730 ret = ocfs2_reserve_blocks_for_rec_trunc(inode, et, 1, &meta_ac,
5755 ret = ocfs2_et_root_journal_access(handle, et,
5765 ret = ocfs2_remove_extent(handle, et, cpos, len, meta_ac, dealloc);
5771 ocfs2_et_update_clusters(et, -len);
5774 ocfs2_journal_dirty(handle, et->et_root_bh);
6628 static int ocfs2_is_dealloc_empty(struct ocfs2_extent_tree *et)
6632 if (!et->et_dealloc)
6635 fl = et->et_dealloc->c_first_suballocator;
6652 struct ocfs2_extent_tree *et,
6662 OCFS2_SB(ocfs2_metadata_cache_get_super(et->et_ci));
6670 dealloc = et->et_dealloc;
6701 ocfs2_set_new_buffer_uptodate(et->et_ci, new_eb_bh[i]);
6703 status = ocfs2_journal_access_eb(handle, et->et_ci,
7060 struct ocfs2_extent_tree et;
7153 ocfs2_init_dinode_extent_tree(&et, INODE_CACHE(inode), di_bh);
7154 ret = ocfs2_insert_extent(handle, &et, 0, block, 1, 0, NULL);
7212 struct ocfs2_extent_tree et;
7216 ocfs2_init_dinode_extent_tree(&et, INODE_CACHE(inode), di_bh);
7292 &et, path, &dealloc);
7341 status = ocfs2_remove_btree_range(inode, &et, trunc_cpos,