• Home
  • Raw
  • Download

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