Lines Matching refs:handle
97 static int ext4_split_extent(handle_t *handle,
104 static int ext4_split_extent_at(handle_t *handle,
114 static int ext4_ext_truncate_extend_restart(handle_t *handle, in ext4_ext_truncate_extend_restart() argument
120 if (!ext4_handle_valid(handle)) in ext4_ext_truncate_extend_restart()
122 if (handle->h_buffer_credits > needed) in ext4_ext_truncate_extend_restart()
124 err = ext4_journal_extend(handle, needed); in ext4_ext_truncate_extend_restart()
127 err = ext4_truncate_restart_trans(handle, inode, needed); in ext4_ext_truncate_extend_restart()
139 static int ext4_ext_get_access(handle_t *handle, struct inode *inode, in ext4_ext_get_access() argument
145 return ext4_journal_get_write_access(handle, path->p_bh); in ext4_ext_get_access()
158 int __ext4_ext_dirty(const char *where, unsigned int line, handle_t *handle, in __ext4_ext_dirty() argument
167 err = __ext4_handle_dirty_metadata(where, line, handle, in __ext4_ext_dirty()
171 err = ext4_mark_inode_dirty(handle, inode); in __ext4_ext_dirty()
226 ext4_ext_new_meta_block(handle_t *handle, struct inode *inode, in ext4_ext_new_meta_block() argument
233 newblock = ext4_new_meta_blocks(handle, inode, goal, flags, in ext4_ext_new_meta_block()
293 ext4_force_split_extent_at(handle_t *handle, struct inode *inode, in ext4_force_split_extent_at() argument
300 return ext4_split_extent_at(handle, inode, ppath, lblk, unwritten ? in ext4_force_split_extent_at()
844 int ext4_ext_tree_init(handle_t *handle, struct inode *inode) in ext4_ext_tree_init() argument
853 ext4_mark_inode_dirty(handle, inode); in ext4_ext_tree_init()
946 static int ext4_ext_insert_index(handle_t *handle, struct inode *inode, in ext4_ext_insert_index() argument
953 err = ext4_ext_get_access(handle, inode, curp); in ext4_ext_insert_index()
1006 err = ext4_ext_dirty(handle, inode, curp); in ext4_ext_insert_index()
1022 static int ext4_ext_split(handle_t *handle, struct inode *inode, in ext4_ext_split() argument
1077 newblock = ext4_ext_new_meta_block(handle, inode, path, in ext4_ext_split()
1098 err = ext4_journal_get_create_access(handle, bh); in ext4_ext_split()
1131 err = ext4_handle_dirty_metadata(handle, inode, bh); in ext4_ext_split()
1139 err = ext4_ext_get_access(handle, inode, path + depth); in ext4_ext_split()
1143 err = ext4_ext_dirty(handle, inode, path + depth); in ext4_ext_split()
1171 err = ext4_journal_get_create_access(handle, bh); in ext4_ext_split()
1210 err = ext4_handle_dirty_metadata(handle, inode, bh); in ext4_ext_split()
1218 err = ext4_ext_get_access(handle, inode, path + i); in ext4_ext_split()
1222 err = ext4_ext_dirty(handle, inode, path + i); in ext4_ext_split()
1231 err = ext4_ext_insert_index(handle, inode, path + at, in ext4_ext_split()
1246 ext4_free_blocks(handle, inode, NULL, ablocks[i], 1, in ext4_ext_split()
1263 static int ext4_ext_grow_indepth(handle_t *handle, struct inode *inode, in ext4_ext_grow_indepth() argument
1280 newblock = ext4_new_meta_blocks(handle, inode, goal, flags, in ext4_ext_grow_indepth()
1290 err = ext4_journal_get_create_access(handle, bh); in ext4_ext_grow_indepth()
1313 err = ext4_handle_dirty_metadata(handle, inode, bh); in ext4_ext_grow_indepth()
1333 ext4_mark_inode_dirty(handle, inode); in ext4_ext_grow_indepth()
1345 static int ext4_ext_create_new_leaf(handle_t *handle, struct inode *inode, in ext4_ext_create_new_leaf() argument
1370 err = ext4_ext_split(handle, inode, mb_flags, path, newext, i); in ext4_ext_create_new_leaf()
1382 err = ext4_ext_grow_indepth(handle, inode, mb_flags); in ext4_ext_create_new_leaf()
1657 static int ext4_ext_correct_indexes(handle_t *handle, struct inode *inode, in ext4_ext_correct_indexes() argument
1690 err = ext4_ext_get_access(handle, inode, path + k); in ext4_ext_correct_indexes()
1694 err = ext4_ext_dirty(handle, inode, path + k); in ext4_ext_correct_indexes()
1702 err = ext4_ext_get_access(handle, inode, path + k); in ext4_ext_correct_indexes()
1706 err = ext4_ext_dirty(handle, inode, path + k); in ext4_ext_correct_indexes()
1800 static void ext4_ext_try_to_merge_up(handle_t *handle, in ext4_ext_try_to_merge_up() argument
1818 if (ext4_journal_extend(handle, 2)) in ext4_ext_try_to_merge_up()
1837 ext4_free_blocks(handle, inode, NULL, blk, 1, in ext4_ext_try_to_merge_up()
1845 static void ext4_ext_try_to_merge(handle_t *handle, in ext4_ext_try_to_merge() argument
1863 ext4_ext_try_to_merge_up(handle, inode, path); in ext4_ext_try_to_merge()
1923 int ext4_ext_insert_extent(handle_t *handle, struct inode *inode, in ext4_ext_insert_extent() argument
1982 err = ext4_ext_get_access(handle, inode, in ext4_ext_insert_extent()
2008 err = ext4_ext_get_access(handle, inode, in ext4_ext_insert_extent()
2060 err = ext4_ext_create_new_leaf(handle, inode, mb_flags, gb_flags, in ext4_ext_insert_extent()
2070 err = ext4_ext_get_access(handle, inode, path + depth); in ext4_ext_insert_extent()
2128 ext4_ext_try_to_merge(handle, inode, path, nearex); in ext4_ext_insert_extent()
2132 err = ext4_ext_correct_indexes(handle, inode, path); in ext4_ext_insert_extent()
2136 err = ext4_ext_dirty(handle, inode, path + path->p_depth); in ext4_ext_insert_extent()
2353 static int ext4_ext_rm_idx(handle_t *handle, struct inode *inode, in ext4_ext_rm_idx() argument
2367 err = ext4_ext_get_access(handle, inode, path); in ext4_ext_rm_idx()
2378 err = ext4_ext_dirty(handle, inode, path); in ext4_ext_rm_idx()
2384 ext4_free_blocks(handle, inode, NULL, leaf, 1, in ext4_ext_rm_idx()
2391 err = ext4_ext_get_access(handle, inode, path); in ext4_ext_rm_idx()
2395 err = ext4_ext_dirty(handle, inode, path); in ext4_ext_rm_idx()
2474 static int ext4_remove_blocks(handle_t *handle, struct inode *inode, in ext4_remove_blocks() argument
2502 ext4_free_blocks(handle, inode, NULL, in ext4_remove_blocks()
2542 ext4_free_blocks(handle, inode, NULL, pblk, num, flags); in ext4_remove_blocks()
2590 ext4_ext_rm_leaf(handle_t *handle, struct inode *inode, in ext4_ext_rm_leaf() argument
2690 err = ext4_ext_truncate_extend_restart(handle, inode, credits); in ext4_ext_rm_leaf()
2694 err = ext4_ext_get_access(handle, inode, path + depth); in ext4_ext_rm_leaf()
2698 err = ext4_remove_blocks(handle, inode, ex, partial_cluster, in ext4_ext_rm_leaf()
2735 err = ext4_ext_dirty(handle, inode, path + depth); in ext4_ext_rm_leaf()
2747 err = ext4_ext_correct_indexes(handle, inode, path); in ext4_ext_rm_leaf()
2759 ext4_free_blocks(handle, inode, NULL, in ext4_ext_rm_leaf()
2770 err = ext4_ext_rm_idx(handle, inode, path, depth); in ext4_ext_rm_leaf()
2804 handle_t *handle; in ext4_ext_remove_space() local
2810 handle = ext4_journal_start(inode, EXT4_HT_TRUNCATE, depth + 1); in ext4_ext_remove_space()
2811 if (IS_ERR(handle)) in ext4_ext_remove_space()
2812 return PTR_ERR(handle); in ext4_ext_remove_space()
2832 ext4_journal_stop(handle); in ext4_ext_remove_space()
2876 err = ext4_force_split_extent_at(handle, inode, &path, in ext4_ext_remove_space()
2914 ext4_journal_stop(handle); in ext4_ext_remove_space()
2931 err = ext4_ext_rm_leaf(handle, inode, path, in ext4_ext_remove_space()
2995 err = ext4_ext_rm_idx(handle, inode, path, i); in ext4_ext_remove_space()
3016 ext4_free_blocks(handle, inode, NULL, in ext4_ext_remove_space()
3028 err = ext4_ext_get_access(handle, inode, path); in ext4_ext_remove_space()
3033 err = ext4_ext_dirty(handle, inode, path); in ext4_ext_remove_space()
3042 ext4_journal_stop(handle); in ext4_ext_remove_space()
3156 static int ext4_split_extent_at(handle_t *handle, in ext4_split_extent_at() argument
3191 err = ext4_ext_get_access(handle, inode, path + depth); in ext4_split_extent_at()
3207 ext4_ext_try_to_merge(handle, inode, path, ex); in ext4_split_extent_at()
3209 err = ext4_ext_dirty(handle, inode, path + path->p_depth); in ext4_split_extent_at()
3223 err = ext4_ext_dirty(handle, inode, path + depth); in ext4_split_extent_at()
3234 err = ext4_ext_insert_extent(handle, inode, ppath, &newex, flags); in ext4_split_extent_at()
3265 ext4_ext_try_to_merge(handle, inode, path, ex); in ext4_split_extent_at()
3266 err = ext4_ext_dirty(handle, inode, path + path->p_depth); in ext4_split_extent_at()
3283 ext4_ext_dirty(handle, inode, path + path->p_depth); in ext4_split_extent_at()
3298 static int ext4_split_extent(handle_t *handle, in ext4_split_extent() argument
3328 err = ext4_split_extent_at(handle, inode, ppath, in ext4_split_extent()
3359 err = ext4_split_extent_at(handle, inode, ppath, in ext4_split_extent()
3390 static int ext4_ext_convert_to_initialized(handle_t *handle, in ext4_ext_convert_to_initialized() argument
3473 err = ext4_ext_get_access(handle, inode, path + depth); in ext4_ext_convert_to_initialized()
3519 err = ext4_ext_get_access(handle, inode, path + depth); in ext4_ext_convert_to_initialized()
3541 ext4_ext_dirty(handle, inode, path + depth); in ext4_ext_convert_to_initialized()
3569 err = ext4_ext_get_access(handle, inode, path + depth); in ext4_ext_convert_to_initialized()
3573 ext4_ext_try_to_merge(handle, inode, path, ex); in ext4_ext_convert_to_initialized()
3574 err = ext4_ext_dirty(handle, inode, path + path->p_depth); in ext4_ext_convert_to_initialized()
3620 err = ext4_split_extent(handle, inode, ppath, &split_map, split_flag, in ext4_ext_convert_to_initialized()
3655 static int ext4_split_convert_extents(handle_t *handle, in ext4_split_convert_extents() argument
3695 return ext4_split_extent(handle, inode, ppath, map, split_flag, flags); in ext4_split_convert_extents()
3698 static int ext4_convert_unwritten_extents_endio(handle_t *handle, in ext4_convert_unwritten_extents_endio() argument
3732 err = ext4_split_convert_extents(handle, inode, map, ppath, in ext4_convert_unwritten_extents_endio()
3743 err = ext4_ext_get_access(handle, inode, path + depth); in ext4_convert_unwritten_extents_endio()
3752 ext4_ext_try_to_merge(handle, inode, path, ex); in ext4_convert_unwritten_extents_endio()
3755 err = ext4_ext_dirty(handle, inode, path + path->p_depth); in ext4_convert_unwritten_extents_endio()
3772 static int check_eofblocks_fl(handle_t *handle, struct inode *inode, in check_eofblocks_fl() argument
3819 return ext4_mark_inode_dirty(handle, inode); in check_eofblocks_fl()
3931 convert_initialized_extent(handle_t *handle, struct inode *inode, in convert_initialized_extent() argument
3960 err = ext4_split_convert_extents(handle, inode, map, ppath, in convert_initialized_extent()
3976 err = ext4_ext_get_access(handle, inode, path + depth); in convert_initialized_extent()
3985 ext4_ext_try_to_merge(handle, inode, path, ex); in convert_initialized_extent()
3988 err = ext4_ext_dirty(handle, inode, path + path->p_depth); in convert_initialized_extent()
3993 ext4_update_inode_fsync_trans(handle, inode, 1); in convert_initialized_extent()
3994 err = check_eofblocks_fl(handle, inode, map->m_lblk, path, map->m_len); in convert_initialized_extent()
4005 ext4_ext_handle_unwritten_extents(handle_t *handle, struct inode *inode, in ext4_ext_handle_unwritten_extents() argument
4032 ret = ext4_split_convert_extents(handle, inode, map, ppath, in ext4_ext_handle_unwritten_extents()
4050 ret = ext4_convert_unwritten_extents_endio(handle, inode, map, in ext4_ext_handle_unwritten_extents()
4053 ext4_update_inode_fsync_trans(handle, inode, 1); in ext4_ext_handle_unwritten_extents()
4054 err = check_eofblocks_fl(handle, inode, map->m_lblk, in ext4_ext_handle_unwritten_extents()
4089 ret = ext4_ext_convert_to_initialized(handle, inode, map, ppath, flags); in ext4_ext_handle_unwritten_extents()
4091 ext4_update_inode_fsync_trans(handle, inode, 1); in ext4_ext_handle_unwritten_extents()
4134 err = check_eofblocks_fl(handle, inode, map->m_lblk, path, in ext4_ext_handle_unwritten_extents()
4270 int ext4_ext_map_blocks(handle_t *handle, struct inode *inode, in ext4_ext_map_blocks() argument
4344 handle, inode, map, &path, in ext4_ext_map_blocks()
4351 handle, inode, map, &path, flags, in ext4_ext_map_blocks()
4459 newblock = ext4_mb_new_blocks(handle, &ar, &err); in ext4_ext_map_blocks()
4491 err = check_eofblocks_fl(handle, inode, map->m_lblk, in ext4_ext_map_blocks()
4494 err = ext4_ext_insert_extent(handle, inode, &path, in ext4_ext_map_blocks()
4512 ext4_free_blocks(handle, inode, NULL, newblock, in ext4_ext_map_blocks()
4604 ext4_update_inode_fsync_trans(handle, inode, 1); in ext4_ext_map_blocks()
4606 ext4_update_inode_fsync_trans(handle, inode, 0); in ext4_ext_map_blocks()
4623 void ext4_ext_truncate(handle_t *handle, struct inode *inode) in ext4_ext_truncate() argument
4637 ext4_mark_inode_dirty(handle, inode); in ext4_ext_truncate()
4662 handle_t *handle; in ext4_alloc_file_blocks() local
4687 handle = ext4_journal_start(inode, EXT4_HT_MAP_BLOCKS, in ext4_alloc_file_blocks()
4689 if (IS_ERR(handle)) { in ext4_alloc_file_blocks()
4690 ret = PTR_ERR(handle); in ext4_alloc_file_blocks()
4693 ret = ext4_map_blocks(handle, inode, &map, flags); in ext4_alloc_file_blocks()
4699 ext4_mark_inode_dirty(handle, inode); in ext4_alloc_file_blocks()
4700 ret2 = ext4_journal_stop(handle); in ext4_alloc_file_blocks()
4717 ext4_mark_inode_dirty(handle, inode); in ext4_alloc_file_blocks()
4718 ret2 = ext4_journal_stop(handle); in ext4_alloc_file_blocks()
4735 handle_t *handle = NULL; in ext4_zero_range() local
4852 handle = ext4_journal_start(inode, EXT4_HT_MISC, credits); in ext4_zero_range()
4853 if (IS_ERR(handle)) { in ext4_zero_range()
4854 ret = PTR_ERR(handle); in ext4_zero_range()
4870 ext4_mark_inode_dirty(handle, inode); in ext4_zero_range()
4873 ret = ext4_zero_partial_blocks(handle, inode, offset, len); in ext4_zero_range()
4876 ext4_handle_sync(handle); in ext4_zero_range()
4878 ext4_journal_stop(handle); in ext4_zero_range()
4996 int ext4_convert_unwritten_extents(handle_t *handle, struct inode *inode, in ext4_convert_unwritten_extents() argument
5017 if (handle) { in ext4_convert_unwritten_extents()
5018 handle = ext4_journal_start_reserved(handle, in ext4_convert_unwritten_extents()
5020 if (IS_ERR(handle)) in ext4_convert_unwritten_extents()
5021 return PTR_ERR(handle); in ext4_convert_unwritten_extents()
5033 handle = ext4_journal_start(inode, EXT4_HT_MAP_BLOCKS, in ext4_convert_unwritten_extents()
5035 if (IS_ERR(handle)) { in ext4_convert_unwritten_extents()
5036 ret = PTR_ERR(handle); in ext4_convert_unwritten_extents()
5040 ret = ext4_map_blocks(handle, inode, &map, in ext4_convert_unwritten_extents()
5048 ext4_mark_inode_dirty(handle, inode); in ext4_convert_unwritten_extents()
5050 ret2 = ext4_journal_stop(handle); in ext4_convert_unwritten_extents()
5055 ret2 = ext4_journal_stop(handle); in ext4_convert_unwritten_extents()
5202 ext4_access_path(handle_t *handle, struct inode *inode, in ext4_access_path() argument
5207 if (!ext4_handle_valid(handle)) in ext4_access_path()
5216 if (handle->h_buffer_credits < 7) { in ext4_access_path()
5218 err = ext4_ext_truncate_extend_restart(handle, inode, credits); in ext4_access_path()
5224 err = ext4_ext_get_access(handle, inode, path); in ext4_access_path()
5236 struct inode *inode, handle_t *handle, in ext4_ext_shift_path_extents() argument
5252 err = ext4_access_path(handle, inode, path + depth); in ext4_ext_shift_path_extents()
5273 err = ext4_ext_dirty(handle, inode, path + depth); in ext4_ext_shift_path_extents()
5282 err = ext4_access_path(handle, inode, path + depth); in ext4_ext_shift_path_extents()
5287 err = ext4_ext_dirty(handle, inode, path + depth); in ext4_ext_shift_path_extents()
5309 ext4_ext_shift_extents(struct inode *inode, handle_t *handle, in ext4_ext_shift_extents() argument
5379 handle, &start); in ext4_ext_shift_extents()
5398 handle_t *handle; in ext4_collapse_range() local
5480 handle = ext4_journal_start(inode, EXT4_HT_TRUNCATE, credits); in ext4_collapse_range()
5481 if (IS_ERR(handle)) { in ext4_collapse_range()
5482 ret = PTR_ERR(handle); in ext4_collapse_range()
5503 ret = ext4_ext_shift_extents(inode, handle, punch_stop, in ext4_collapse_range()
5516 ext4_handle_sync(handle); in ext4_collapse_range()
5518 ext4_mark_inode_dirty(handle, inode); in ext4_collapse_range()
5521 ext4_journal_stop(handle); in ext4_collapse_range()
5551 ext4_swap_extents(handle_t *handle, struct inode *inode1, in ext4_swap_extents() argument
5633 *erp = ext4_force_split_extent_at(handle, inode1, in ext4_swap_extents()
5640 *erp = ext4_force_split_extent_at(handle, inode2, in ext4_swap_extents()
5659 *erp = ext4_force_split_extent_at(handle, inode1, in ext4_swap_extents()
5666 *erp = ext4_force_split_extent_at(handle, inode2, in ext4_swap_extents()
5677 *erp = ext4_ext_get_access(handle, inode1, path1 + path1->p_depth); in ext4_swap_extents()
5680 *erp = ext4_ext_get_access(handle, inode2, path2 + path2->p_depth); in ext4_swap_extents()
5695 ext4_ext_try_to_merge(handle, inode2, path2, ex2); in ext4_swap_extents()
5696 ext4_ext_try_to_merge(handle, inode1, path1, ex1); in ext4_swap_extents()
5697 *erp = ext4_ext_dirty(handle, inode2, path2 + in ext4_swap_extents()
5701 *erp = ext4_ext_dirty(handle, inode1, path1 + in ext4_swap_extents()