Lines Matching defs:handle
87 static int ext4_split_extent_at(handle_t *handle,
129 * Make sure 'handle' has at least 'check_cred' credits. If not, restart
136 int ext4_datasem_ensure_credits(handle_t *handle, struct inode *inode,
143 ret = ext4_journal_ensure_credits_fn(handle, check_cred, restart_cred,
155 static int ext4_ext_get_access(handle_t *handle, struct inode *inode,
163 err = ext4_journal_get_write_access(handle, inode->i_sb,
186 handle_t *handle, struct inode *inode,
195 err = __ext4_handle_dirty_metadata(where, line, handle,
202 err = ext4_mark_inode_dirty(handle, inode);
207 #define ext4_ext_dirty(handle, inode, path) \
208 __ext4_ext_dirty(__func__, __LINE__, (handle), (inode), (path))
260 ext4_ext_new_meta_block(handle_t *handle, struct inode *inode,
267 newblock = ext4_new_meta_blocks(handle, inode, goal, flags,
327 ext4_force_split_extent_at(handle_t *handle, struct inode *inode,
338 return ext4_split_extent_at(handle, inode, ppath, lblk, unwritten ?
869 void ext4_ext_tree_init(handle_t *handle, struct inode *inode)
879 ext4_mark_inode_dirty(handle, inode);
974 static int ext4_ext_insert_index(handle_t *handle, struct inode *inode,
981 err = ext4_ext_get_access(handle, inode, curp);
1036 err = ext4_ext_dirty(handle, inode, curp);
1052 static int ext4_ext_split(handle_t *handle, struct inode *inode,
1102 * We need this to handle errors and free blocks
1112 newblock = ext4_ext_new_meta_block(handle, inode, path,
1133 err = ext4_journal_get_create_access(handle, inode->i_sb, bh,
1172 err = ext4_handle_dirty_metadata(handle, inode, bh);
1180 err = ext4_ext_get_access(handle, inode, path + depth);
1184 err = ext4_ext_dirty(handle, inode, path + depth);
1212 err = ext4_journal_get_create_access(handle, inode->i_sb, bh,
1258 err = ext4_handle_dirty_metadata(handle, inode, bh);
1266 err = ext4_ext_get_access(handle, inode, path + i);
1270 err = ext4_ext_dirty(handle, inode, path + i);
1279 err = ext4_ext_insert_index(handle, inode, path + at,
1294 ext4_free_blocks(handle, inode, NULL, ablocks[i], 1,
1311 static int ext4_ext_grow_indepth(handle_t *handle, struct inode *inode,
1329 newblock = ext4_new_meta_blocks(handle, inode, goal, flags,
1339 err = ext4_journal_get_create_access(handle, inode->i_sb, bh,
1366 err = ext4_handle_dirty_metadata(handle, inode, bh);
1386 err = ext4_mark_inode_dirty(handle, inode);
1398 static int ext4_ext_create_new_leaf(handle_t *handle, struct inode *inode,
1423 err = ext4_ext_split(handle, inode, mb_flags, path, newext, i);
1435 err = ext4_ext_grow_indepth(handle, inode, mb_flags);
1705 static int ext4_ext_correct_indexes(handle_t *handle, struct inode *inode,
1738 err = ext4_ext_get_access(handle, inode, path + k);
1742 err = ext4_ext_dirty(handle, inode, path + k);
1750 err = ext4_ext_get_access(handle, inode, path + k);
1754 err = ext4_ext_dirty(handle, inode, path + k);
1842 static void ext4_ext_try_to_merge_up(handle_t *handle,
1860 if (ext4_journal_extend(handle, 2,
1880 ext4_free_blocks(handle, inode, NULL, blk, 1,
1888 static void ext4_ext_try_to_merge(handle_t *handle,
1907 ext4_ext_try_to_merge_up(handle, inode, path);
1967 int ext4_ext_insert_extent(handle_t *handle, struct inode *inode,
2026 err = ext4_ext_get_access(handle, inode,
2051 err = ext4_ext_get_access(handle, inode,
2102 err = ext4_ext_create_new_leaf(handle, inode, mb_flags, gb_flags,
2112 err = ext4_ext_get_access(handle, inode, path + depth);
2170 ext4_ext_try_to_merge(handle, inode, path, nearex);
2174 err = ext4_ext_correct_indexes(handle, inode, path);
2178 err = ext4_ext_dirty(handle, inode, path + path->p_depth);
2277 static int ext4_ext_rm_idx(handle_t *handle, struct inode *inode,
2291 err = ext4_ext_get_access(handle, inode, path);
2302 err = ext4_ext_dirty(handle, inode, path);
2308 ext4_free_blocks(handle, inode, NULL, leaf, 1,
2315 err = ext4_ext_get_access(handle, inode, path);
2319 err = ext4_ext_dirty(handle, inode, path);
2430 static int ext4_remove_blocks(handle_t *handle, struct inode *inode,
2477 ext4_free_blocks(handle, inode, NULL,
2503 ext4_free_blocks(handle, inode, NULL,
2521 ext4_free_blocks(handle, inode, NULL, pblk, num, flags);
2555 * @handle: The journal handle
2566 ext4_ext_rm_leaf(handle_t *handle, struct inode *inode,
2639 "can not handle truncate %u:%u "
2674 err = ext4_datasem_ensure_credits(handle, inode, credits,
2682 err = ext4_ext_get_access(handle, inode, path + depth);
2686 err = ext4_remove_blocks(handle, inode, ex, partial, a, b);
2722 err = ext4_ext_dirty(handle, inode, path + depth);
2734 err = ext4_ext_correct_indexes(handle, inode, path);
2750 ext4_free_blocks(handle, inode, NULL,
2762 err = ext4_ext_rm_idx(handle, inode, path, depth);
2796 handle_t *handle;
2806 handle = ext4_journal_start_with_revoke(inode, EXT4_HT_TRUNCATE,
2809 if (IS_ERR(handle))
2810 return PTR_ERR(handle);
2831 ext4_journal_stop(handle);
2875 err = ext4_force_split_extent_at(handle, inode, &path,
2917 ext4_journal_stop(handle);
2934 err = ext4_ext_rm_leaf(handle, inode, path,
2995 * handle must be already prepared by the
2997 err = ext4_ext_rm_idx(handle, inode, path, i);
3019 ext4_free_blocks(handle, inode, NULL,
3033 err = ext4_ext_get_access(handle, inode, path);
3038 err = ext4_ext_dirty(handle, inode, path);
3046 ext4_journal_stop(handle);
3134 * @handle: the journal handle
3152 static int ext4_split_extent_at(handle_t *handle,
3186 err = ext4_ext_get_access(handle, inode, path + depth);
3202 ext4_ext_try_to_merge(handle, inode, path, ex);
3204 err = ext4_ext_dirty(handle, inode, path + path->p_depth);
3218 err = ext4_ext_dirty(handle, inode, path + depth);
3229 err = ext4_ext_insert_extent(handle, inode, ppath, &newex, flags);
3262 ext4_ext_try_to_merge(handle, inode, path, ex);
3263 err = ext4_ext_dirty(handle, inode, path + path->p_depth);
3282 ext4_ext_dirty(handle, inode, path + path->p_depth);
3300 static int ext4_split_extent(handle_t *handle,
3330 err = ext4_split_extent_at(handle, inode, ppath,
3360 err = ext4_split_extent_at(handle, inode, ppath,
3391 static int ext4_ext_convert_to_initialized(handle_t *handle,
3474 err = ext4_ext_get_access(handle, inode, path + depth);
3520 err = ext4_ext_get_access(handle, inode, path + depth);
3542 err = ext4_ext_dirty(handle, inode, path + depth);
3612 err = ext4_split_extent(handle, inode, ppath, &split_map, split_flag,
3649 static int ext4_split_convert_extents(handle_t *handle,
3688 return ext4_split_extent(handle, inode, ppath, map, split_flag, flags);
3691 static int ext4_convert_unwritten_extents_endio(handle_t *handle,
3724 err = ext4_split_convert_extents(handle, inode, map, ppath,
3735 err = ext4_ext_get_access(handle, inode, path + depth);
3744 ext4_ext_try_to_merge(handle, inode, path, ex);
3747 err = ext4_ext_dirty(handle, inode, path + path->p_depth);
3754 convert_initialized_extent(handle_t *handle, struct inode *inode,
3782 err = ext4_split_convert_extents(handle, inode, map, ppath,
3798 err = ext4_ext_get_access(handle, inode, path + depth);
3807 ext4_ext_try_to_merge(handle, inode, path, ex);
3810 err = ext4_ext_dirty(handle, inode, path + path->p_depth);
3815 ext4_update_inode_fsync_trans(handle, inode, 1);
3825 ext4_ext_handle_unwritten_extents(handle_t *handle, struct inode *inode,
3850 ret = ext4_split_convert_extents(handle, inode, map, ppath,
3872 err = ext4_convert_unwritten_extents_endio(handle, inode, map,
3876 ext4_update_inode_fsync_trans(handle, inode, 1);
3907 ret = ext4_ext_convert_to_initialized(handle, inode, map, ppath, flags);
3912 ext4_update_inode_fsync_trans(handle, inode, 1);
4008 * Check for and handle this case:
4064 * There's a delalloc extent in the hole, handle it if the delalloc
4123 int ext4_ext_map_blocks(handle_t *handle, struct inode *inode,
4192 err = convert_initialized_extent(handle,
4206 handle, inode, map, &path, flags,
4314 newblock = ext4_mb_new_blocks(handle, &ar, &err);
4335 err = ext4_ext_insert_extent(handle, inode, &path, &newex, flags);
4348 ext4_free_blocks(handle, inode, NULL, newblock,
4397 ext4_update_inode_fsync_trans(handle, inode, 1);
4399 ext4_update_inode_fsync_trans(handle, inode, 0);
4414 int ext4_ext_truncate(handle_t *handle, struct inode *inode)
4428 err = ext4_mark_inode_dirty(handle, inode);
4450 handle_t *handle;
4485 handle = ext4_journal_start(inode, EXT4_HT_MAP_BLOCKS,
4487 if (IS_ERR(handle)) {
4488 ret = PTR_ERR(handle);
4491 ret = ext4_map_blocks(handle, inode, &map, flags);
4497 ext4_mark_inode_dirty(handle, inode);
4498 ext4_journal_stop(handle);
4515 ret2 = ext4_mark_inode_dirty(handle, inode);
4516 ext4_update_inode_fsync_trans(handle, inode, 1);
4517 ret3 = ext4_journal_stop(handle);
4537 handle_t *handle = NULL;
4669 handle = ext4_journal_start(inode, EXT4_HT_MISC, credits);
4670 if (IS_ERR(handle)) {
4671 ret = PTR_ERR(handle);
4679 ret = ext4_mark_inode_dirty(handle, inode);
4683 ret = ext4_zero_partial_blocks(handle, inode, offset, len);
4685 ext4_update_inode_fsync_trans(handle, inode, 1);
4688 ext4_handle_sync(handle);
4691 ext4_journal_stop(handle);
4715 * Encrypted inodes can't handle collapse range or insert
4812 int ext4_convert_unwritten_extents(handle_t *handle, struct inode *inode,
4824 if (!handle) {
4834 handle = ext4_journal_start(inode, EXT4_HT_MAP_BLOCKS,
4836 if (IS_ERR(handle)) {
4837 ret = PTR_ERR(handle);
4841 ret = ext4_map_blocks(handle, inode, &map,
4849 ret2 = ext4_mark_inode_dirty(handle, inode);
4851 ret3 = ext4_journal_stop(handle);
4862 int ext4_convert_unwritten_io_end_vec(handle_t *handle, ext4_io_end_t *io_end)
4872 if (handle) {
4873 handle = ext4_journal_start_reserved(handle,
4875 if (IS_ERR(handle))
4876 return PTR_ERR(handle);
4880 ret = ext4_convert_unwritten_extents(handle, io_end->inode,
4887 if (handle)
4888 err = ext4_journal_stop(handle);
4966 * Shrink request scope to what the fs can actually handle.
5056 struct inode *inode, handle_t *handle,
5081 err = ext4_datasem_ensure_credits(handle, inode, credits,
5089 err = ext4_ext_get_access(handle, inode, path + depth);
5113 err = ext4_ext_dirty(handle, inode, path + depth);
5122 err = ext4_ext_get_access(handle, inode, path + depth);
5130 err = ext4_ext_dirty(handle, inode, path + depth);
5153 ext4_ext_shift_extents(struct inode *inode, handle_t *handle,
5278 handle, SHIFT);
5301 handle_t *handle;
5380 handle = ext4_journal_start(inode, EXT4_HT_TRUNCATE, credits);
5381 if (IS_ERR(handle)) {
5382 ret = PTR_ERR(handle);
5385 ext4_fc_mark_ineligible(sb, EXT4_FC_REASON_FALLOC_RANGE, handle);
5398 ret = ext4_ext_shift_extents(inode, handle, punch_stop,
5411 ext4_handle_sync(handle);
5413 ret = ext4_mark_inode_dirty(handle, inode);
5414 ext4_update_inode_fsync_trans(handle, inode, 1);
5417 ext4_journal_stop(handle);
5438 handle_t *handle;
5512 handle = ext4_journal_start(inode, EXT4_HT_TRUNCATE, credits);
5513 if (IS_ERR(handle)) {
5514 ret = PTR_ERR(handle);
5517 ext4_fc_mark_ineligible(sb, EXT4_FC_REASON_FALLOC_RANGE, handle);
5523 ret = ext4_mark_inode_dirty(handle, inode);
5551 ret = ext4_split_extent_at(handle, inode, &path,
5573 ret = ext4_ext_shift_extents(inode, handle,
5578 ext4_handle_sync(handle);
5580 ext4_update_inode_fsync_trans(handle, inode, 1);
5583 ext4_journal_stop(handle);
5593 * @handle: handle for this transaction
5612 ext4_swap_extents(handle_t *handle, struct inode *inode1,
5690 *erp = ext4_force_split_extent_at(handle, inode1,
5697 *erp = ext4_force_split_extent_at(handle, inode2,
5716 *erp = ext4_force_split_extent_at(handle, inode1,
5723 *erp = ext4_force_split_extent_at(handle, inode2,
5734 *erp = ext4_ext_get_access(handle, inode1, path1 + path1->p_depth);
5737 *erp = ext4_ext_get_access(handle, inode2, path2 + path2->p_depth);
5752 ext4_ext_try_to_merge(handle, inode2, path2, ex2);
5753 ext4_ext_try_to_merge(handle, inode1, path1, ex1);
5754 *erp = ext4_ext_dirty(handle, inode2, path2 +
5758 *erp = ext4_ext_dirty(handle, inode1, path1 +