Lines Matching refs:handle
86 static int ext4_split_extent(handle_t *handle,
93 static int ext4_split_extent_at(handle_t *handle,
103 static int ext4_ext_truncate_extend_restart(handle_t *handle, in ext4_ext_truncate_extend_restart() argument
109 if (!ext4_handle_valid(handle)) in ext4_ext_truncate_extend_restart()
111 if (handle->h_buffer_credits >= needed) in ext4_ext_truncate_extend_restart()
118 err = ext4_journal_extend(handle, needed - handle->h_buffer_credits); in ext4_ext_truncate_extend_restart()
121 err = ext4_truncate_restart_trans(handle, inode, needed); in ext4_ext_truncate_extend_restart()
133 static int ext4_ext_get_access(handle_t *handle, struct inode *inode, in ext4_ext_get_access() argument
141 err = ext4_journal_get_write_access(handle, path->p_bh); in ext4_ext_get_access()
163 int __ext4_ext_dirty(const char *where, unsigned int line, handle_t *handle, in __ext4_ext_dirty() argument
172 err = __ext4_handle_dirty_metadata(where, line, handle, in __ext4_ext_dirty()
179 err = ext4_mark_inode_dirty(handle, inode); in __ext4_ext_dirty()
234 ext4_ext_new_meta_block(handle_t *handle, struct inode *inode, in ext4_ext_new_meta_block() argument
241 newblock = ext4_new_meta_blocks(handle, inode, goal, flags, in ext4_ext_new_meta_block()
301 ext4_force_split_extent_at(handle_t *handle, struct inode *inode, in ext4_force_split_extent_at() argument
308 return ext4_split_extent_at(handle, inode, ppath, lblk, unwritten ? in ext4_force_split_extent_at()
899 int ext4_ext_tree_init(handle_t *handle, struct inode *inode) in ext4_ext_tree_init() argument
909 ext4_mark_inode_dirty(handle, inode); in ext4_ext_tree_init()
1002 static int ext4_ext_insert_index(handle_t *handle, struct inode *inode, in ext4_ext_insert_index() argument
1009 err = ext4_ext_get_access(handle, inode, curp); in ext4_ext_insert_index()
1062 err = ext4_ext_dirty(handle, inode, curp); in ext4_ext_insert_index()
1078 static int ext4_ext_split(handle_t *handle, struct inode *inode, in ext4_ext_split() argument
1134 newblock = ext4_ext_new_meta_block(handle, inode, path, in ext4_ext_split()
1155 err = ext4_journal_get_create_access(handle, bh); in ext4_ext_split()
1193 err = ext4_handle_dirty_metadata(handle, inode, bh); in ext4_ext_split()
1201 err = ext4_ext_get_access(handle, inode, path + depth); in ext4_ext_split()
1205 err = ext4_ext_dirty(handle, inode, path + depth); in ext4_ext_split()
1233 err = ext4_journal_get_create_access(handle, bh); in ext4_ext_split()
1278 err = ext4_handle_dirty_metadata(handle, inode, bh); in ext4_ext_split()
1286 err = ext4_ext_get_access(handle, inode, path + i); in ext4_ext_split()
1290 err = ext4_ext_dirty(handle, inode, path + i); in ext4_ext_split()
1299 err = ext4_ext_insert_index(handle, inode, path + at, in ext4_ext_split()
1314 ext4_free_blocks(handle, inode, NULL, ablocks[i], 1, in ext4_ext_split()
1331 static int ext4_ext_grow_indepth(handle_t *handle, struct inode *inode, in ext4_ext_grow_indepth() argument
1349 newblock = ext4_new_meta_blocks(handle, inode, goal, flags, in ext4_ext_grow_indepth()
1359 err = ext4_journal_get_create_access(handle, bh); in ext4_ext_grow_indepth()
1384 err = ext4_handle_dirty_metadata(handle, inode, bh); in ext4_ext_grow_indepth()
1404 ext4_mark_inode_dirty(handle, inode); in ext4_ext_grow_indepth()
1416 static int ext4_ext_create_new_leaf(handle_t *handle, struct inode *inode, in ext4_ext_create_new_leaf() argument
1441 err = ext4_ext_split(handle, inode, mb_flags, path, newext, i); in ext4_ext_create_new_leaf()
1453 err = ext4_ext_grow_indepth(handle, inode, mb_flags); in ext4_ext_create_new_leaf()
1724 static int ext4_ext_correct_indexes(handle_t *handle, struct inode *inode, in ext4_ext_correct_indexes() argument
1757 err = ext4_ext_get_access(handle, inode, path + k); in ext4_ext_correct_indexes()
1761 err = ext4_ext_dirty(handle, inode, path + k); in ext4_ext_correct_indexes()
1769 err = ext4_ext_get_access(handle, inode, path + k); in ext4_ext_correct_indexes()
1773 err = ext4_ext_dirty(handle, inode, path + k); in ext4_ext_correct_indexes()
1873 static void ext4_ext_try_to_merge_up(handle_t *handle, in ext4_ext_try_to_merge_up() argument
1891 if (ext4_journal_extend(handle, 2)) in ext4_ext_try_to_merge_up()
1910 ext4_free_blocks(handle, inode, NULL, blk, 1, in ext4_ext_try_to_merge_up()
1918 static void ext4_ext_try_to_merge(handle_t *handle, in ext4_ext_try_to_merge() argument
1936 ext4_ext_try_to_merge_up(handle, inode, path); in ext4_ext_try_to_merge()
1996 int ext4_ext_insert_extent(handle_t *handle, struct inode *inode, in ext4_ext_insert_extent() argument
2055 err = ext4_ext_get_access(handle, inode, in ext4_ext_insert_extent()
2081 err = ext4_ext_get_access(handle, inode, in ext4_ext_insert_extent()
2133 err = ext4_ext_create_new_leaf(handle, inode, mb_flags, gb_flags, in ext4_ext_insert_extent()
2143 err = ext4_ext_get_access(handle, inode, path + depth); in ext4_ext_insert_extent()
2201 ext4_ext_try_to_merge(handle, inode, path, nearex); in ext4_ext_insert_extent()
2205 err = ext4_ext_correct_indexes(handle, inode, path); in ext4_ext_insert_extent()
2209 err = ext4_ext_dirty(handle, inode, path + path->p_depth); in ext4_ext_insert_extent()
2482 static int ext4_ext_rm_idx(handle_t *handle, struct inode *inode, in ext4_ext_rm_idx() argument
2496 err = ext4_ext_get_access(handle, inode, path); in ext4_ext_rm_idx()
2507 err = ext4_ext_dirty(handle, inode, path); in ext4_ext_rm_idx()
2513 ext4_free_blocks(handle, inode, NULL, leaf, 1, in ext4_ext_rm_idx()
2520 err = ext4_ext_get_access(handle, inode, path); in ext4_ext_rm_idx()
2524 err = ext4_ext_dirty(handle, inode, path); in ext4_ext_rm_idx()
2635 static int ext4_remove_blocks(handle_t *handle, struct inode *inode, in ext4_remove_blocks() argument
2682 ext4_free_blocks(handle, inode, NULL, in ext4_remove_blocks()
2708 ext4_free_blocks(handle, inode, NULL, in ext4_remove_blocks()
2726 ext4_free_blocks(handle, inode, NULL, pblk, num, flags); in ext4_remove_blocks()
2771 ext4_ext_rm_leaf(handle_t *handle, struct inode *inode, in ext4_ext_rm_leaf() argument
2871 err = ext4_ext_truncate_extend_restart(handle, inode, credits); in ext4_ext_rm_leaf()
2875 err = ext4_ext_get_access(handle, inode, path + depth); in ext4_ext_rm_leaf()
2879 err = ext4_remove_blocks(handle, inode, ex, partial, a, b); in ext4_ext_rm_leaf()
2915 err = ext4_ext_dirty(handle, inode, path + depth); in ext4_ext_rm_leaf()
2927 err = ext4_ext_correct_indexes(handle, inode, path); in ext4_ext_rm_leaf()
2943 ext4_free_blocks(handle, inode, NULL, in ext4_ext_rm_leaf()
2955 err = ext4_ext_rm_idx(handle, inode, path, depth); in ext4_ext_rm_leaf()
2989 handle_t *handle; in ext4_ext_remove_space() local
2999 handle = ext4_journal_start(inode, EXT4_HT_TRUNCATE, depth + 1); in ext4_ext_remove_space()
3000 if (IS_ERR(handle)) in ext4_ext_remove_space()
3001 return PTR_ERR(handle); in ext4_ext_remove_space()
3021 ext4_journal_stop(handle); in ext4_ext_remove_space()
3065 err = ext4_force_split_extent_at(handle, inode, &path, in ext4_ext_remove_space()
3107 ext4_journal_stop(handle); in ext4_ext_remove_space()
3124 err = ext4_ext_rm_leaf(handle, inode, path, in ext4_ext_remove_space()
3187 err = ext4_ext_rm_idx(handle, inode, path, i); in ext4_ext_remove_space()
3209 ext4_free_blocks(handle, inode, NULL, in ext4_ext_remove_space()
3223 err = ext4_ext_get_access(handle, inode, path); in ext4_ext_remove_space()
3228 err = ext4_ext_dirty(handle, inode, path); in ext4_ext_remove_space()
3237 ext4_journal_stop(handle); in ext4_ext_remove_space()
3343 static int ext4_split_extent_at(handle_t *handle, in ext4_split_extent_at() argument
3378 err = ext4_ext_get_access(handle, inode, path + depth); in ext4_split_extent_at()
3394 ext4_ext_try_to_merge(handle, inode, path, ex); in ext4_split_extent_at()
3396 err = ext4_ext_dirty(handle, inode, path + path->p_depth); in ext4_split_extent_at()
3410 err = ext4_ext_dirty(handle, inode, path + depth); in ext4_split_extent_at()
3421 err = ext4_ext_insert_extent(handle, inode, ppath, &newex, flags); in ext4_split_extent_at()
3454 ext4_ext_try_to_merge(handle, inode, path, ex); in ext4_split_extent_at()
3455 err = ext4_ext_dirty(handle, inode, path + path->p_depth); in ext4_split_extent_at()
3470 ext4_ext_dirty(handle, inode, path + path->p_depth); in ext4_split_extent_at()
3488 static int ext4_split_extent(handle_t *handle, in ext4_split_extent() argument
3518 err = ext4_split_extent_at(handle, inode, ppath, in ext4_split_extent()
3549 err = ext4_split_extent_at(handle, inode, ppath, in ext4_split_extent()
3580 static int ext4_ext_convert_to_initialized(handle_t *handle, in ext4_ext_convert_to_initialized() argument
3664 err = ext4_ext_get_access(handle, inode, path + depth); in ext4_ext_convert_to_initialized()
3710 err = ext4_ext_get_access(handle, inode, path + depth); in ext4_ext_convert_to_initialized()
3732 ext4_ext_dirty(handle, inode, path + depth); in ext4_ext_convert_to_initialized()
3804 err = ext4_split_extent(handle, inode, ppath, &split_map, split_flag, in ext4_ext_convert_to_initialized()
3842 static int ext4_split_convert_extents(handle_t *handle, in ext4_split_convert_extents() argument
3882 return ext4_split_extent(handle, inode, ppath, map, split_flag, flags); in ext4_split_convert_extents()
3885 static int ext4_convert_unwritten_extents_endio(handle_t *handle, in ext4_convert_unwritten_extents_endio() argument
3919 err = ext4_split_convert_extents(handle, inode, map, ppath, in ext4_convert_unwritten_extents_endio()
3930 err = ext4_ext_get_access(handle, inode, path + depth); in ext4_convert_unwritten_extents_endio()
3939 ext4_ext_try_to_merge(handle, inode, path, ex); in ext4_convert_unwritten_extents_endio()
3942 err = ext4_ext_dirty(handle, inode, path + path->p_depth); in ext4_convert_unwritten_extents_endio()
3951 static int check_eofblocks_fl(handle_t *handle, struct inode *inode, in check_eofblocks_fl() argument
3998 return ext4_mark_inode_dirty(handle, inode); in check_eofblocks_fl()
4002 convert_initialized_extent(handle_t *handle, struct inode *inode, in convert_initialized_extent() argument
4031 err = ext4_split_convert_extents(handle, inode, map, ppath, in convert_initialized_extent()
4047 err = ext4_ext_get_access(handle, inode, path + depth); in convert_initialized_extent()
4056 ext4_ext_try_to_merge(handle, inode, path, ex); in convert_initialized_extent()
4059 err = ext4_ext_dirty(handle, inode, path + path->p_depth); in convert_initialized_extent()
4064 ext4_update_inode_fsync_trans(handle, inode, 1); in convert_initialized_extent()
4065 err = check_eofblocks_fl(handle, inode, map->m_lblk, path, map->m_len); in convert_initialized_extent()
4076 ext4_ext_handle_unwritten_extents(handle_t *handle, struct inode *inode, in ext4_ext_handle_unwritten_extents() argument
4102 ret = ext4_split_convert_extents(handle, inode, map, ppath, in ext4_ext_handle_unwritten_extents()
4119 ret = ext4_convert_unwritten_extents_endio(handle, inode, map, in ext4_ext_handle_unwritten_extents()
4122 ext4_update_inode_fsync_trans(handle, inode, 1); in ext4_ext_handle_unwritten_extents()
4123 err = check_eofblocks_fl(handle, inode, map->m_lblk, in ext4_ext_handle_unwritten_extents()
4158 ret = ext4_ext_convert_to_initialized(handle, inode, map, ppath, flags); in ext4_ext_handle_unwritten_extents()
4160 ext4_update_inode_fsync_trans(handle, inode, 1); in ext4_ext_handle_unwritten_extents()
4175 err = check_eofblocks_fl(handle, inode, map->m_lblk, path, in ext4_ext_handle_unwritten_extents()
4311 int ext4_ext_map_blocks(handle_t *handle, struct inode *inode, in ext4_ext_map_blocks() argument
4383 handle, inode, map, &path, in ext4_ext_map_blocks()
4390 handle, inode, map, &path, flags, in ext4_ext_map_blocks()
4511 newblock = ext4_mb_new_blocks(handle, &ar, &err); in ext4_ext_map_blocks()
4534 err = check_eofblocks_fl(handle, inode, map->m_lblk, in ext4_ext_map_blocks()
4537 err = ext4_ext_insert_extent(handle, inode, &path, in ext4_ext_map_blocks()
4547 ext4_free_blocks(handle, inode, NULL, newblock, in ext4_ext_map_blocks()
4601 ext4_update_inode_fsync_trans(handle, inode, 1); in ext4_ext_map_blocks()
4603 ext4_update_inode_fsync_trans(handle, inode, 0); in ext4_ext_map_blocks()
4620 int ext4_ext_truncate(handle_t *handle, struct inode *inode) in ext4_ext_truncate() argument
4634 err = ext4_mark_inode_dirty(handle, inode); in ext4_ext_truncate()
4658 handle_t *handle; in ext4_alloc_file_blocks() local
4694 handle = ext4_journal_start(inode, EXT4_HT_MAP_BLOCKS, in ext4_alloc_file_blocks()
4696 if (IS_ERR(handle)) { in ext4_alloc_file_blocks()
4697 ret = PTR_ERR(handle); in ext4_alloc_file_blocks()
4700 ret = ext4_map_blocks(handle, inode, &map, flags); in ext4_alloc_file_blocks()
4706 ext4_mark_inode_dirty(handle, inode); in ext4_alloc_file_blocks()
4707 ret2 = ext4_journal_stop(handle); in ext4_alloc_file_blocks()
4724 ext4_mark_inode_dirty(handle, inode); in ext4_alloc_file_blocks()
4725 ext4_update_inode_fsync_trans(handle, inode, 1); in ext4_alloc_file_blocks()
4726 ret2 = ext4_journal_stop(handle); in ext4_alloc_file_blocks()
4743 handle_t *handle = NULL; in ext4_zero_range() local
4867 handle = ext4_journal_start(inode, EXT4_HT_MISC, credits); in ext4_zero_range()
4868 if (IS_ERR(handle)) { in ext4_zero_range()
4869 ret = PTR_ERR(handle); in ext4_zero_range()
4885 ext4_mark_inode_dirty(handle, inode); in ext4_zero_range()
4888 ret = ext4_zero_partial_blocks(handle, inode, offset, len); in ext4_zero_range()
4890 ext4_update_inode_fsync_trans(handle, inode, 1); in ext4_zero_range()
4893 ext4_handle_sync(handle); in ext4_zero_range()
4895 ext4_journal_stop(handle); in ext4_zero_range()
5011 int ext4_convert_unwritten_extents(handle_t *handle, struct inode *inode, in ext4_convert_unwritten_extents() argument
5028 if (handle) { in ext4_convert_unwritten_extents()
5029 handle = ext4_journal_start_reserved(handle, in ext4_convert_unwritten_extents()
5031 if (IS_ERR(handle)) in ext4_convert_unwritten_extents()
5032 return PTR_ERR(handle); in ext4_convert_unwritten_extents()
5044 handle = ext4_journal_start(inode, EXT4_HT_MAP_BLOCKS, in ext4_convert_unwritten_extents()
5046 if (IS_ERR(handle)) { in ext4_convert_unwritten_extents()
5047 ret = PTR_ERR(handle); in ext4_convert_unwritten_extents()
5051 ret = ext4_map_blocks(handle, inode, &map, in ext4_convert_unwritten_extents()
5059 ext4_mark_inode_dirty(handle, inode); in ext4_convert_unwritten_extents()
5061 ret2 = ext4_journal_stop(handle); in ext4_convert_unwritten_extents()
5066 ret2 = ext4_journal_stop(handle); in ext4_convert_unwritten_extents()
5248 ext4_access_path(handle_t *handle, struct inode *inode, in ext4_access_path() argument
5253 if (!ext4_handle_valid(handle)) in ext4_access_path()
5262 if (handle->h_buffer_credits < 7) { in ext4_access_path()
5264 err = ext4_ext_truncate_extend_restart(handle, inode, credits); in ext4_access_path()
5270 err = ext4_ext_get_access(handle, inode, path); in ext4_access_path()
5282 struct inode *inode, handle_t *handle, in ext4_ext_shift_path_extents() argument
5298 err = ext4_access_path(handle, inode, path + depth); in ext4_ext_shift_path_extents()
5325 err = ext4_ext_dirty(handle, inode, path + depth); in ext4_ext_shift_path_extents()
5334 err = ext4_access_path(handle, inode, path + depth); in ext4_ext_shift_path_extents()
5342 err = ext4_ext_dirty(handle, inode, path + depth); in ext4_ext_shift_path_extents()
5365 ext4_ext_shift_extents(struct inode *inode, handle_t *handle, in ext4_ext_shift_extents() argument
5476 handle, SHIFT); in ext4_ext_shift_extents()
5495 handle_t *handle; in ext4_collapse_range() local
5581 handle = ext4_journal_start(inode, EXT4_HT_TRUNCATE, credits); in ext4_collapse_range()
5582 if (IS_ERR(handle)) { in ext4_collapse_range()
5583 ret = PTR_ERR(handle); in ext4_collapse_range()
5604 ret = ext4_ext_shift_extents(inode, handle, punch_stop, in ext4_collapse_range()
5617 ext4_handle_sync(handle); in ext4_collapse_range()
5619 ext4_mark_inode_dirty(handle, inode); in ext4_collapse_range()
5620 ext4_update_inode_fsync_trans(handle, inode, 1); in ext4_collapse_range()
5623 ext4_journal_stop(handle); in ext4_collapse_range()
5642 handle_t *handle; in ext4_insert_range() local
5723 handle = ext4_journal_start(inode, EXT4_HT_TRUNCATE, credits); in ext4_insert_range()
5724 if (IS_ERR(handle)) { in ext4_insert_range()
5725 ret = PTR_ERR(handle); in ext4_insert_range()
5733 ret = ext4_mark_inode_dirty(handle, inode); in ext4_insert_range()
5761 ret = ext4_split_extent_at(handle, inode, &path, in ext4_insert_range()
5790 ret = ext4_ext_shift_extents(inode, handle, in ext4_insert_range()
5796 ext4_handle_sync(handle); in ext4_insert_range()
5798 ext4_update_inode_fsync_trans(handle, inode, 1); in ext4_insert_range()
5801 ext4_journal_stop(handle); in ext4_insert_range()
5830 ext4_swap_extents(handle_t *handle, struct inode *inode1, in ext4_swap_extents() argument
5912 *erp = ext4_force_split_extent_at(handle, inode1, in ext4_swap_extents()
5919 *erp = ext4_force_split_extent_at(handle, inode2, in ext4_swap_extents()
5938 *erp = ext4_force_split_extent_at(handle, inode1, in ext4_swap_extents()
5945 *erp = ext4_force_split_extent_at(handle, inode2, in ext4_swap_extents()
5956 *erp = ext4_ext_get_access(handle, inode1, path1 + path1->p_depth); in ext4_swap_extents()
5959 *erp = ext4_ext_get_access(handle, inode2, path2 + path2->p_depth); in ext4_swap_extents()
5974 ext4_ext_try_to_merge(handle, inode2, path2, ex2); in ext4_swap_extents()
5975 ext4_ext_try_to_merge(handle, inode1, path1, ex1); in ext4_swap_extents()
5976 *erp = ext4_ext_dirty(handle, inode2, path2 + in ext4_swap_extents()
5980 *erp = ext4_ext_dirty(handle, inode1, path1 + in ext4_swap_extents()