Lines Matching refs:handle

98 static int ext4_split_extent(handle_t *handle,
105 static int ext4_split_extent_at(handle_t *handle,
115 static int ext4_ext_truncate_extend_restart(handle_t *handle, in ext4_ext_truncate_extend_restart() argument
121 if (!ext4_handle_valid(handle)) in ext4_ext_truncate_extend_restart()
123 if (handle->h_buffer_credits > needed) in ext4_ext_truncate_extend_restart()
125 err = ext4_journal_extend(handle, needed); in ext4_ext_truncate_extend_restart()
128 err = ext4_truncate_restart_trans(handle, inode, needed); in ext4_ext_truncate_extend_restart()
140 static int ext4_ext_get_access(handle_t *handle, struct inode *inode, in ext4_ext_get_access() argument
146 return ext4_journal_get_write_access(handle, path->p_bh); in ext4_ext_get_access()
159 int __ext4_ext_dirty(const char *where, unsigned int line, handle_t *handle, in __ext4_ext_dirty() argument
168 err = __ext4_handle_dirty_metadata(where, line, handle, in __ext4_ext_dirty()
172 err = ext4_mark_inode_dirty(handle, inode); in __ext4_ext_dirty()
227 ext4_ext_new_meta_block(handle_t *handle, struct inode *inode, in ext4_ext_new_meta_block() argument
234 newblock = ext4_new_meta_blocks(handle, inode, goal, flags, in ext4_ext_new_meta_block()
294 ext4_force_split_extent_at(handle_t *handle, struct inode *inode, in ext4_force_split_extent_at() argument
301 return ext4_split_extent_at(handle, inode, ppath, lblk, unwritten ? in ext4_force_split_extent_at()
846 int ext4_ext_tree_init(handle_t *handle, struct inode *inode) in ext4_ext_tree_init() argument
855 ext4_mark_inode_dirty(handle, inode); in ext4_ext_tree_init()
948 static int ext4_ext_insert_index(handle_t *handle, struct inode *inode, in ext4_ext_insert_index() argument
955 err = ext4_ext_get_access(handle, inode, curp); in ext4_ext_insert_index()
1008 err = ext4_ext_dirty(handle, inode, curp); in ext4_ext_insert_index()
1024 static int ext4_ext_split(handle_t *handle, struct inode *inode, in ext4_ext_split() argument
1079 newblock = ext4_ext_new_meta_block(handle, inode, path, in ext4_ext_split()
1100 err = ext4_journal_get_create_access(handle, bh); in ext4_ext_split()
1133 err = ext4_handle_dirty_metadata(handle, inode, bh); in ext4_ext_split()
1141 err = ext4_ext_get_access(handle, inode, path + depth); in ext4_ext_split()
1145 err = ext4_ext_dirty(handle, inode, path + depth); in ext4_ext_split()
1173 err = ext4_journal_get_create_access(handle, bh); in ext4_ext_split()
1212 err = ext4_handle_dirty_metadata(handle, inode, bh); in ext4_ext_split()
1220 err = ext4_ext_get_access(handle, inode, path + i); in ext4_ext_split()
1224 err = ext4_ext_dirty(handle, inode, path + i); in ext4_ext_split()
1233 err = ext4_ext_insert_index(handle, inode, path + at, in ext4_ext_split()
1248 ext4_free_blocks(handle, inode, NULL, ablocks[i], 1, in ext4_ext_split()
1265 static int ext4_ext_grow_indepth(handle_t *handle, struct inode *inode, in ext4_ext_grow_indepth() argument
1282 newblock = ext4_new_meta_blocks(handle, inode, goal, flags, in ext4_ext_grow_indepth()
1292 err = ext4_journal_get_create_access(handle, bh); in ext4_ext_grow_indepth()
1315 err = ext4_handle_dirty_metadata(handle, inode, bh); in ext4_ext_grow_indepth()
1335 ext4_mark_inode_dirty(handle, inode); in ext4_ext_grow_indepth()
1347 static int ext4_ext_create_new_leaf(handle_t *handle, struct inode *inode, in ext4_ext_create_new_leaf() argument
1372 err = ext4_ext_split(handle, inode, mb_flags, path, newext, i); in ext4_ext_create_new_leaf()
1384 err = ext4_ext_grow_indepth(handle, inode, mb_flags); in ext4_ext_create_new_leaf()
1659 static int ext4_ext_correct_indexes(handle_t *handle, struct inode *inode, in ext4_ext_correct_indexes() argument
1692 err = ext4_ext_get_access(handle, inode, path + k); in ext4_ext_correct_indexes()
1696 err = ext4_ext_dirty(handle, inode, path + k); in ext4_ext_correct_indexes()
1704 err = ext4_ext_get_access(handle, inode, path + k); in ext4_ext_correct_indexes()
1708 err = ext4_ext_dirty(handle, inode, path + k); in ext4_ext_correct_indexes()
1802 static void ext4_ext_try_to_merge_up(handle_t *handle, in ext4_ext_try_to_merge_up() argument
1820 if (ext4_journal_extend(handle, 2)) in ext4_ext_try_to_merge_up()
1839 ext4_free_blocks(handle, inode, NULL, blk, 1, in ext4_ext_try_to_merge_up()
1847 static void ext4_ext_try_to_merge(handle_t *handle, in ext4_ext_try_to_merge() argument
1865 ext4_ext_try_to_merge_up(handle, inode, path); in ext4_ext_try_to_merge()
1925 int ext4_ext_insert_extent(handle_t *handle, struct inode *inode, in ext4_ext_insert_extent() argument
1984 err = ext4_ext_get_access(handle, inode, in ext4_ext_insert_extent()
2010 err = ext4_ext_get_access(handle, inode, in ext4_ext_insert_extent()
2062 err = ext4_ext_create_new_leaf(handle, inode, mb_flags, gb_flags, in ext4_ext_insert_extent()
2072 err = ext4_ext_get_access(handle, inode, path + depth); in ext4_ext_insert_extent()
2130 ext4_ext_try_to_merge(handle, inode, path, nearex); in ext4_ext_insert_extent()
2134 err = ext4_ext_correct_indexes(handle, inode, path); in ext4_ext_insert_extent()
2138 err = ext4_ext_dirty(handle, inode, path + path->p_depth); in ext4_ext_insert_extent()
2355 static int ext4_ext_rm_idx(handle_t *handle, struct inode *inode, in ext4_ext_rm_idx() argument
2369 err = ext4_ext_get_access(handle, inode, path); in ext4_ext_rm_idx()
2380 err = ext4_ext_dirty(handle, inode, path); in ext4_ext_rm_idx()
2386 ext4_free_blocks(handle, inode, NULL, leaf, 1, in ext4_ext_rm_idx()
2393 err = ext4_ext_get_access(handle, inode, path); in ext4_ext_rm_idx()
2397 err = ext4_ext_dirty(handle, inode, path); in ext4_ext_rm_idx()
2476 static int ext4_remove_blocks(handle_t *handle, struct inode *inode, in ext4_remove_blocks() argument
2504 ext4_free_blocks(handle, inode, NULL, in ext4_remove_blocks()
2544 ext4_free_blocks(handle, inode, NULL, pblk, num, flags); in ext4_remove_blocks()
2592 ext4_ext_rm_leaf(handle_t *handle, struct inode *inode, in ext4_ext_rm_leaf() argument
2692 err = ext4_ext_truncate_extend_restart(handle, inode, credits); in ext4_ext_rm_leaf()
2696 err = ext4_ext_get_access(handle, inode, path + depth); in ext4_ext_rm_leaf()
2700 err = ext4_remove_blocks(handle, inode, ex, partial_cluster, in ext4_ext_rm_leaf()
2737 err = ext4_ext_dirty(handle, inode, path + depth); in ext4_ext_rm_leaf()
2749 err = ext4_ext_correct_indexes(handle, inode, path); in ext4_ext_rm_leaf()
2761 ext4_free_blocks(handle, inode, NULL, in ext4_ext_rm_leaf()
2772 err = ext4_ext_rm_idx(handle, inode, path, depth); in ext4_ext_rm_leaf()
2806 handle_t *handle; in ext4_ext_remove_space() local
2812 handle = ext4_journal_start(inode, EXT4_HT_TRUNCATE, depth + 1); in ext4_ext_remove_space()
2813 if (IS_ERR(handle)) in ext4_ext_remove_space()
2814 return PTR_ERR(handle); in ext4_ext_remove_space()
2834 ext4_journal_stop(handle); in ext4_ext_remove_space()
2878 err = ext4_force_split_extent_at(handle, inode, &path, in ext4_ext_remove_space()
2916 ext4_journal_stop(handle); in ext4_ext_remove_space()
2933 err = ext4_ext_rm_leaf(handle, inode, path, in ext4_ext_remove_space()
2997 err = ext4_ext_rm_idx(handle, inode, path, i); in ext4_ext_remove_space()
3018 ext4_free_blocks(handle, inode, NULL, in ext4_ext_remove_space()
3030 err = ext4_ext_get_access(handle, inode, path); in ext4_ext_remove_space()
3035 err = ext4_ext_dirty(handle, inode, path); in ext4_ext_remove_space()
3044 ext4_journal_stop(handle); in ext4_ext_remove_space()
3158 static int ext4_split_extent_at(handle_t *handle, in ext4_split_extent_at() argument
3193 err = ext4_ext_get_access(handle, inode, path + depth); in ext4_split_extent_at()
3209 ext4_ext_try_to_merge(handle, inode, path, ex); in ext4_split_extent_at()
3211 err = ext4_ext_dirty(handle, inode, path + path->p_depth); in ext4_split_extent_at()
3225 err = ext4_ext_dirty(handle, inode, path + depth); in ext4_split_extent_at()
3236 err = ext4_ext_insert_extent(handle, inode, ppath, &newex, flags); in ext4_split_extent_at()
3267 ext4_ext_try_to_merge(handle, inode, path, ex); in ext4_split_extent_at()
3268 err = ext4_ext_dirty(handle, inode, path + path->p_depth); in ext4_split_extent_at()
3285 ext4_ext_dirty(handle, inode, path + path->p_depth); in ext4_split_extent_at()
3300 static int ext4_split_extent(handle_t *handle, in ext4_split_extent() argument
3330 err = ext4_split_extent_at(handle, inode, ppath, in ext4_split_extent()
3361 err = ext4_split_extent_at(handle, inode, ppath, in ext4_split_extent()
3392 static int ext4_ext_convert_to_initialized(handle_t *handle, in ext4_ext_convert_to_initialized() argument
3475 err = ext4_ext_get_access(handle, inode, path + depth); in ext4_ext_convert_to_initialized()
3521 err = ext4_ext_get_access(handle, inode, path + depth); in ext4_ext_convert_to_initialized()
3543 ext4_ext_dirty(handle, inode, path + depth); in ext4_ext_convert_to_initialized()
3574 err = ext4_ext_get_access(handle, inode, path + depth); in ext4_ext_convert_to_initialized()
3578 ext4_ext_try_to_merge(handle, inode, path, ex); in ext4_ext_convert_to_initialized()
3579 err = ext4_ext_dirty(handle, inode, path + path->p_depth); in ext4_ext_convert_to_initialized()
3625 err = ext4_split_extent(handle, inode, ppath, &split_map, split_flag, in ext4_ext_convert_to_initialized()
3660 static int ext4_split_convert_extents(handle_t *handle, in ext4_split_convert_extents() argument
3700 return ext4_split_extent(handle, inode, ppath, map, split_flag, flags); in ext4_split_convert_extents()
3703 static int ext4_convert_unwritten_extents_endio(handle_t *handle, in ext4_convert_unwritten_extents_endio() argument
3737 err = ext4_split_convert_extents(handle, inode, map, ppath, in ext4_convert_unwritten_extents_endio()
3748 err = ext4_ext_get_access(handle, inode, path + depth); in ext4_convert_unwritten_extents_endio()
3757 ext4_ext_try_to_merge(handle, inode, path, ex); in ext4_convert_unwritten_extents_endio()
3760 err = ext4_ext_dirty(handle, inode, path + path->p_depth); in ext4_convert_unwritten_extents_endio()
3777 static int check_eofblocks_fl(handle_t *handle, struct inode *inode, in check_eofblocks_fl() argument
3824 return ext4_mark_inode_dirty(handle, inode); in check_eofblocks_fl()
3936 convert_initialized_extent(handle_t *handle, struct inode *inode, in convert_initialized_extent() argument
3965 err = ext4_split_convert_extents(handle, inode, map, ppath, in convert_initialized_extent()
3981 err = ext4_ext_get_access(handle, inode, path + depth); in convert_initialized_extent()
3990 ext4_ext_try_to_merge(handle, inode, path, ex); in convert_initialized_extent()
3993 err = ext4_ext_dirty(handle, inode, path + path->p_depth); in convert_initialized_extent()
3998 ext4_update_inode_fsync_trans(handle, inode, 1); in convert_initialized_extent()
3999 err = check_eofblocks_fl(handle, inode, map->m_lblk, path, map->m_len); in convert_initialized_extent()
4010 ext4_ext_handle_unwritten_extents(handle_t *handle, struct inode *inode, in ext4_ext_handle_unwritten_extents() argument
4037 ret = ext4_split_convert_extents(handle, inode, map, ppath, in ext4_ext_handle_unwritten_extents()
4055 ret = ext4_convert_unwritten_extents_endio(handle, inode, map, in ext4_ext_handle_unwritten_extents()
4058 ext4_update_inode_fsync_trans(handle, inode, 1); in ext4_ext_handle_unwritten_extents()
4059 err = check_eofblocks_fl(handle, inode, map->m_lblk, in ext4_ext_handle_unwritten_extents()
4094 ret = ext4_ext_convert_to_initialized(handle, inode, map, ppath, flags); in ext4_ext_handle_unwritten_extents()
4096 ext4_update_inode_fsync_trans(handle, inode, 1); in ext4_ext_handle_unwritten_extents()
4139 err = check_eofblocks_fl(handle, inode, map->m_lblk, path, in ext4_ext_handle_unwritten_extents()
4275 int ext4_ext_map_blocks(handle_t *handle, struct inode *inode, in ext4_ext_map_blocks() argument
4349 handle, inode, map, &path, in ext4_ext_map_blocks()
4356 handle, inode, map, &path, flags, in ext4_ext_map_blocks()
4466 newblock = ext4_mb_new_blocks(handle, &ar, &err); in ext4_ext_map_blocks()
4498 err = check_eofblocks_fl(handle, inode, map->m_lblk, in ext4_ext_map_blocks()
4501 err = ext4_ext_insert_extent(handle, inode, &path, in ext4_ext_map_blocks()
4519 ext4_free_blocks(handle, inode, NULL, newblock, in ext4_ext_map_blocks()
4611 ext4_update_inode_fsync_trans(handle, inode, 1); in ext4_ext_map_blocks()
4613 ext4_update_inode_fsync_trans(handle, inode, 0); in ext4_ext_map_blocks()
4630 void ext4_ext_truncate(handle_t *handle, struct inode *inode) in ext4_ext_truncate() argument
4644 ext4_mark_inode_dirty(handle, inode); in ext4_ext_truncate()
4669 handle_t *handle; in ext4_alloc_file_blocks() local
4710 handle = ext4_journal_start(inode, EXT4_HT_MAP_BLOCKS, in ext4_alloc_file_blocks()
4712 if (IS_ERR(handle)) { in ext4_alloc_file_blocks()
4713 ret = PTR_ERR(handle); in ext4_alloc_file_blocks()
4716 ret = ext4_map_blocks(handle, inode, &map, flags); in ext4_alloc_file_blocks()
4722 ext4_mark_inode_dirty(handle, inode); in ext4_alloc_file_blocks()
4723 ret2 = ext4_journal_stop(handle); in ext4_alloc_file_blocks()
4740 ext4_mark_inode_dirty(handle, inode); in ext4_alloc_file_blocks()
4741 ret2 = ext4_journal_stop(handle); in ext4_alloc_file_blocks()
4758 handle_t *handle = NULL; in ext4_zero_range() local
4875 handle = ext4_journal_start(inode, EXT4_HT_MISC, credits); in ext4_zero_range()
4876 if (IS_ERR(handle)) { in ext4_zero_range()
4877 ret = PTR_ERR(handle); in ext4_zero_range()
4893 ext4_mark_inode_dirty(handle, inode); in ext4_zero_range()
4896 ret = ext4_zero_partial_blocks(handle, inode, offset, len); in ext4_zero_range()
4899 ext4_handle_sync(handle); in ext4_zero_range()
4901 ext4_journal_stop(handle); in ext4_zero_range()
5024 int ext4_convert_unwritten_extents(handle_t *handle, struct inode *inode, in ext4_convert_unwritten_extents() argument
5045 if (handle) { in ext4_convert_unwritten_extents()
5046 handle = ext4_journal_start_reserved(handle, in ext4_convert_unwritten_extents()
5048 if (IS_ERR(handle)) in ext4_convert_unwritten_extents()
5049 return PTR_ERR(handle); in ext4_convert_unwritten_extents()
5061 handle = ext4_journal_start(inode, EXT4_HT_MAP_BLOCKS, in ext4_convert_unwritten_extents()
5063 if (IS_ERR(handle)) { in ext4_convert_unwritten_extents()
5064 ret = PTR_ERR(handle); in ext4_convert_unwritten_extents()
5068 ret = ext4_map_blocks(handle, inode, &map, in ext4_convert_unwritten_extents()
5076 ext4_mark_inode_dirty(handle, inode); in ext4_convert_unwritten_extents()
5078 ret2 = ext4_journal_stop(handle); in ext4_convert_unwritten_extents()
5083 ret2 = ext4_journal_stop(handle); in ext4_convert_unwritten_extents()
5230 ext4_access_path(handle_t *handle, struct inode *inode, in ext4_access_path() argument
5235 if (!ext4_handle_valid(handle)) in ext4_access_path()
5244 if (handle->h_buffer_credits < 7) { in ext4_access_path()
5246 err = ext4_ext_truncate_extend_restart(handle, inode, credits); in ext4_access_path()
5252 err = ext4_ext_get_access(handle, inode, path); in ext4_access_path()
5264 struct inode *inode, handle_t *handle, in ext4_ext_shift_path_extents() argument
5280 err = ext4_access_path(handle, inode, path + depth); in ext4_ext_shift_path_extents()
5307 err = ext4_ext_dirty(handle, inode, path + depth); in ext4_ext_shift_path_extents()
5316 err = ext4_access_path(handle, inode, path + depth); in ext4_ext_shift_path_extents()
5324 err = ext4_ext_dirty(handle, inode, path + depth); in ext4_ext_shift_path_extents()
5347 ext4_ext_shift_extents(struct inode *inode, handle_t *handle, in ext4_ext_shift_extents() argument
5443 handle, SHIFT); in ext4_ext_shift_extents()
5462 handle_t *handle; in ext4_collapse_range() local
5544 handle = ext4_journal_start(inode, EXT4_HT_TRUNCATE, credits); in ext4_collapse_range()
5545 if (IS_ERR(handle)) { in ext4_collapse_range()
5546 ret = PTR_ERR(handle); in ext4_collapse_range()
5567 ret = ext4_ext_shift_extents(inode, handle, punch_stop, in ext4_collapse_range()
5580 ext4_handle_sync(handle); in ext4_collapse_range()
5582 ext4_mark_inode_dirty(handle, inode); in ext4_collapse_range()
5585 ext4_journal_stop(handle); in ext4_collapse_range()
5605 handle_t *handle; in ext4_insert_range() local
5682 handle = ext4_journal_start(inode, EXT4_HT_TRUNCATE, credits); in ext4_insert_range()
5683 if (IS_ERR(handle)) { in ext4_insert_range()
5684 ret = PTR_ERR(handle); in ext4_insert_range()
5692 ret = ext4_mark_inode_dirty(handle, inode); in ext4_insert_range()
5720 ret = ext4_split_extent_at(handle, inode, &path, in ext4_insert_range()
5746 ret = ext4_ext_shift_extents(inode, handle, in ext4_insert_range()
5752 ext4_handle_sync(handle); in ext4_insert_range()
5755 ext4_journal_stop(handle); in ext4_insert_range()
5785 ext4_swap_extents(handle_t *handle, struct inode *inode1, in ext4_swap_extents() argument
5867 *erp = ext4_force_split_extent_at(handle, inode1, in ext4_swap_extents()
5874 *erp = ext4_force_split_extent_at(handle, inode2, in ext4_swap_extents()
5893 *erp = ext4_force_split_extent_at(handle, inode1, in ext4_swap_extents()
5900 *erp = ext4_force_split_extent_at(handle, inode2, in ext4_swap_extents()
5911 *erp = ext4_ext_get_access(handle, inode1, path1 + path1->p_depth); in ext4_swap_extents()
5914 *erp = ext4_ext_get_access(handle, inode2, path2 + path2->p_depth); in ext4_swap_extents()
5929 ext4_ext_try_to_merge(handle, inode2, path2, ex2); in ext4_swap_extents()
5930 ext4_ext_try_to_merge(handle, inode1, path1, ex1); in ext4_swap_extents()
5931 *erp = ext4_ext_dirty(handle, inode2, path2 + in ext4_swap_extents()
5935 *erp = ext4_ext_dirty(handle, inode1, path1 + in ext4_swap_extents()