Lines Matching refs:handle
53 static void ext4_journalled_zero_new_buffers(handle_t *handle,
167 handle_t *handle; in ext4_evict_inode() local
226 handle = ext4_journal_start(inode, EXT4_HT_TRUNCATE, in ext4_evict_inode()
228 if (IS_ERR(handle)) { in ext4_evict_inode()
229 ext4_std_error(inode->i_sb, PTR_ERR(handle)); in ext4_evict_inode()
242 ext4_handle_sync(handle); in ext4_evict_inode()
254 err = ext4_mark_inode_dirty(handle, inode); in ext4_evict_inode()
271 err = ext4_xattr_delete_inode(handle, inode, &ea_inode_array, in ext4_evict_inode()
276 ext4_journal_stop(handle); in ext4_evict_inode()
292 ext4_orphan_del(handle, inode); in ext4_evict_inode()
302 if (ext4_mark_inode_dirty(handle, inode)) in ext4_evict_inode()
306 ext4_free_inode(handle, inode); in ext4_evict_inode()
307 ext4_journal_stop(handle); in ext4_evict_inode()
444 static void ext4_map_blocks_es_recheck(handle_t *handle, in ext4_map_blocks_es_recheck() argument
462 retval = ext4_ext_map_blocks(handle, inode, map, 0); in ext4_map_blocks_es_recheck()
464 retval = ext4_ind_map_blocks(handle, inode, map, 0); in ext4_map_blocks_es_recheck()
486 static int ext4_map_query_blocks_next_in_leaf(handle_t *handle, in ext4_map_query_blocks_next_in_leaf() argument
504 retval = ext4_ext_map_blocks(handle, inode, &map2, 0); in ext4_map_query_blocks_next_in_leaf()
541 static int ext4_map_query_blocks(handle_t *handle, struct inode *inode, in ext4_map_query_blocks() argument
550 retval = ext4_ext_map_blocks(handle, inode, map, flags); in ext4_map_query_blocks()
552 retval = ext4_ind_map_blocks(handle, inode, map, flags); in ext4_map_query_blocks()
579 return ext4_map_query_blocks_next_in_leaf(handle, inode, map, in ext4_map_query_blocks()
583 static int ext4_map_create_blocks(handle_t *handle, struct inode *inode, in ext4_map_create_blocks() argument
609 retval = ext4_ext_map_blocks(handle, inode, map, flags); in ext4_map_create_blocks()
611 retval = ext4_ind_map_blocks(handle, inode, map, flags); in ext4_map_create_blocks()
688 int ext4_map_blocks(handle_t *handle, struct inode *inode, in ext4_map_blocks() argument
752 ext4_map_blocks_es_recheck(handle, inode, map, in ext4_map_blocks()
773 retval = ext4_map_query_blocks(handle, inode, map, flags); in ext4_map_blocks()
803 ext4_fc_track_inode(handle, inode); in ext4_map_blocks()
811 retval = ext4_map_create_blocks(handle, inode, map, flags); in ext4_map_blocks()
833 ret = ext4_jbd2_inode_add_wait(handle, inode, in ext4_map_blocks()
836 ret = ext4_jbd2_inode_add_write(handle, inode, in ext4_map_blocks()
844 ext4_fc_track_range(handle, inode, map->m_lblk, in ext4_map_blocks()
883 static inline int ext4_journal_ensure_extent_credits(handle_t *handle, in ext4_journal_ensure_extent_credits() argument
890 if (!handle) in ext4_journal_ensure_extent_credits()
894 ret = __ext4_journal_ensure_credits(handle, credits, credits, 0); in ext4_journal_ensure_extent_credits()
963 struct buffer_head *ext4_getblk(handle_t *handle, struct inode *inode, in ext4_getblk() argument
973 || handle != NULL || create == 0); in ext4_getblk()
978 err = ext4_map_blocks(handle, inode, &map, map_flags); in ext4_getblk()
1001 || (handle != NULL)); in ext4_getblk()
1012 err = ext4_journal_get_create_access(handle, inode->i_sb, bh, in ext4_getblk()
1024 err = ext4_handle_dirty_metadata(handle, inode, bh); in ext4_getblk()
1035 struct buffer_head *ext4_bread(handle_t *handle, struct inode *inode, in ext4_bread() argument
1041 bh = ext4_getblk(handle, inode, block, map_flags); in ext4_bread()
1098 int ext4_walk_page_buffers(handle_t *handle, struct inode *inode, in ext4_walk_page_buffers() argument
1103 int (*fn)(handle_t *handle, struct inode *inode, in ext4_walk_page_buffers() argument
1122 err = (*fn)(handle, inode, bh); in ext4_walk_page_buffers()
1135 static int ext4_dirty_journalled_data(handle_t *handle, struct buffer_head *bh) in ext4_dirty_journalled_data() argument
1143 return ext4_handle_dirty_metadata(handle, NULL, bh); in ext4_dirty_journalled_data()
1146 int do_journal_get_write_access(handle_t *handle, struct inode *inode, in do_journal_get_write_access() argument
1152 return ext4_journal_get_write_access(handle, inode->i_sb, bh, in do_journal_get_write_access()
1156 int ext4_block_write_begin(handle_t *handle, struct folio *folio, in ext4_block_write_begin() argument
1196 err = ext4_journal_ensure_extent_credits(handle, inode); in ext4_block_write_begin()
1208 do_journal_get_write_access(handle, in ext4_block_write_begin()
1248 ext4_journalled_zero_new_buffers(handle, inode, folio, in ext4_block_write_begin()
1282 handle_t *handle; in ext4_write_begin() local
1338 handle = ext4_journal_start(inode, EXT4_HT_WRITE_PAGE, needed_blocks); in ext4_write_begin()
1339 if (IS_ERR(handle)) { in ext4_write_begin()
1341 return PTR_ERR(handle); in ext4_write_begin()
1349 ext4_journal_stop(handle); in ext4_write_begin()
1356 ret = ext4_block_write_begin(handle, folio, pos, len, in ext4_write_begin()
1359 ret = ext4_block_write_begin(handle, folio, pos, len, in ext4_write_begin()
1362 ret = ext4_walk_page_buffers(handle, inode, in ext4_write_begin()
1381 ext4_orphan_add(handle, inode); in ext4_write_begin()
1383 ext4_journal_stop(handle); in ext4_write_begin()
1408 static int write_end_fn(handle_t *handle, struct inode *inode, in write_end_fn() argument
1415 ret = ext4_dirty_journalled_data(handle, bh); in write_end_fn()
1434 handle_t *handle = ext4_journal_current_handle(); in ext4_write_end() local
1463 ext4_zero_partial_blocks(handle, inode, old_size, pos - old_size); in ext4_write_end()
1472 ret = ext4_mark_inode_dirty(handle, inode); in ext4_write_end()
1479 ext4_orphan_add(handle, inode); in ext4_write_end()
1481 ret2 = ext4_journal_stop(handle); in ext4_write_end()
1504 static void ext4_journalled_zero_new_buffers(handle_t *handle, in ext4_journalled_zero_new_buffers() argument
1526 write_end_fn(handle, inode, bh); in ext4_journalled_zero_new_buffers()
1539 handle_t *handle = ext4_journal_current_handle(); in ext4_journalled_write_end() local
1552 BUG_ON(!ext4_handle_valid(handle)); in ext4_journalled_write_end()
1560 ext4_journalled_zero_new_buffers(handle, inode, folio, in ext4_journalled_write_end()
1564 ext4_journalled_zero_new_buffers(handle, inode, folio, in ext4_journalled_write_end()
1566 ret = ext4_walk_page_buffers(handle, inode, in ext4_journalled_write_end()
1575 EXT4_I(inode)->i_datasync_tid = handle->h_transaction->t_tid; in ext4_journalled_write_end()
1581 ext4_zero_partial_blocks(handle, inode, old_size, pos - old_size); in ext4_journalled_write_end()
1585 ret2 = ext4_mark_inode_dirty(handle, inode); in ext4_journalled_write_end()
1595 ext4_orphan_add(handle, inode); in ext4_journalled_write_end()
1597 ret2 = ext4_journal_stop(handle); in ext4_journalled_write_end()
2340 static int mpage_map_one_extent(handle_t *handle, struct mpage_da_data *mpd) in mpage_map_one_extent() argument
2348 err = ext4_journal_ensure_extent_credits(handle, inode); in mpage_map_one_extent()
2374 err = ext4_map_blocks(handle, inode, map, get_blocks_flags); in mpage_map_one_extent()
2378 if (!mpd->io_submit.io_end->handle && in mpage_map_one_extent()
2379 ext4_handle_valid(handle)) { in mpage_map_one_extent()
2380 mpd->io_submit.io_end->handle = handle->h_rsv_handle; in mpage_map_one_extent()
2381 handle->h_rsv_handle = NULL; in mpage_map_one_extent()
2451 static int mpage_map_and_submit_extent(handle_t *handle, in mpage_map_and_submit_extent() argument
2468 err = mpage_map_one_extent(handle, mpd); in mpage_map_and_submit_extent()
2536 err2 = ext4_mark_inode_dirty(handle, inode); in mpage_map_and_submit_extent()
2548 static int ext4_journal_folio_buffers(handle_t *handle, struct folio *folio, in ext4_journal_folio_buffers() argument
2555 ret = ext4_walk_page_buffers(handle, inode, page_bufs, 0, len, in ext4_journal_folio_buffers()
2557 err = ext4_walk_page_buffers(handle, inode, page_bufs, 0, len, in ext4_journal_folio_buffers()
2561 err = ext4_jbd2_inode_add_write(handle, inode, folio_pos(folio), len); in ext4_journal_folio_buffers()
2564 EXT4_I(inode)->i_datasync_tid = handle->h_transaction->t_tid; in ext4_journal_folio_buffers()
2569 static int mpage_journal_page_buffers(handle_t *handle, in mpage_journal_page_buffers() argument
2584 return ext4_journal_folio_buffers(handle, folio, len); in mpage_journal_page_buffers()
2619 handle_t *handle = NULL; in mpage_prepare_extent_to_map() local
2630 handle = ext4_journal_start(mpd->inode, EXT4_HT_WRITE_PAGE, in mpage_prepare_extent_to_map()
2632 if (IS_ERR(handle)) in mpage_prepare_extent_to_map()
2633 return PTR_ERR(handle); in mpage_prepare_extent_to_map()
2663 if (handle) { in mpage_prepare_extent_to_map()
2664 err = ext4_journal_ensure_credits(handle, bpp, in mpage_prepare_extent_to_map()
2724 err = mpage_journal_page_buffers(handle, in mpage_prepare_extent_to_map()
2747 if (handle) in mpage_prepare_extent_to_map()
2748 ext4_journal_stop(handle); in mpage_prepare_extent_to_map()
2752 if (handle) in mpage_prepare_extent_to_map()
2753 ext4_journal_stop(handle); in mpage_prepare_extent_to_map()
2764 handle_t *handle = NULL; in ext4_do_writepages() local
2803 handle = ext4_journal_start(inode, EXT4_HT_INODE, 1); in ext4_do_writepages()
2804 if (IS_ERR(handle)) { in ext4_do_writepages()
2805 ret = PTR_ERR(handle); in ext4_do_writepages()
2810 ext4_destroy_inline_data(handle, inode); in ext4_do_writepages()
2811 ext4_journal_stop(handle); in ext4_do_writepages()
2913 handle = ext4_journal_start_with_reserve(inode, in ext4_do_writepages()
2915 if (IS_ERR(handle)) { in ext4_do_writepages()
2916 ret = PTR_ERR(handle); in ext4_do_writepages()
2931 ret = mpage_map_and_submit_extent(handle, mpd, in ext4_do_writepages()
2943 if (!ext4_handle_valid(handle) || handle->h_sync == 0) { in ext4_do_writepages()
2944 ext4_journal_stop(handle); in ext4_do_writepages()
2945 handle = NULL; in ext4_do_writepages()
2960 if (handle) { in ext4_do_writepages()
2962 ext4_journal_stop(handle); in ext4_do_writepages()
3206 handle_t *handle; in ext4_da_do_write_end() local
3257 handle = ext4_journal_start(inode, EXT4_HT_INODE, 2); in ext4_da_do_write_end()
3258 if (IS_ERR(handle)) in ext4_da_do_write_end()
3259 return PTR_ERR(handle); in ext4_da_do_write_end()
3261 ext4_zero_partial_blocks(handle, inode, old_size, zero_len); in ext4_da_do_write_end()
3262 ext4_mark_inode_dirty(handle, inode); in ext4_da_do_write_end()
3263 ext4_journal_stop(handle); in ext4_da_do_write_end()
3541 static int ext4_map_blocks_atomic_write_slow(handle_t *handle, in ext4_map_blocks_atomic_write_slow() argument
3563 ret = ext4_map_blocks(handle, inode, map, m_flags); in ext4_map_blocks_atomic_write_slow()
3608 ret = ext4_map_blocks(handle, inode, map, in ext4_map_blocks_atomic_write_slow()
3645 static int ext4_map_blocks_atomic_write(handle_t *handle, struct inode *inode, in ext4_map_blocks_atomic_write() argument
3655 ret = ext4_map_blocks(handle, inode, map, m_flags); in ext4_map_blocks_atomic_write()
3672 return ext4_map_blocks_atomic_write_slow(handle, inode, map); in ext4_map_blocks_atomic_write()
3680 handle_t *handle; in ext4_iomap_alloc() local
3723 handle = ext4_journal_start(inode, EXT4_HT_MAP_BLOCKS, dio_credits); in ext4_iomap_alloc()
3724 if (IS_ERR(handle)) in ext4_iomap_alloc()
3725 return PTR_ERR(handle); in ext4_iomap_alloc()
3746 ret = ext4_map_blocks_atomic_write(handle, inode, map, m_flags, in ext4_iomap_alloc()
3749 ret = ext4_map_blocks(handle, inode, map, m_flags); in ext4_iomap_alloc()
3759 ext4_journal_stop(handle); in ext4_iomap_alloc()
4092 static int __ext4_block_zero_page_range(handle_t *handle, in __ext4_block_zero_page_range() argument
4160 err = ext4_journal_get_write_access(handle, inode->i_sb, bh, in __ext4_block_zero_page_range()
4169 err = ext4_dirty_journalled_data(handle, bh); in __ext4_block_zero_page_range()
4174 err = ext4_jbd2_inode_add_write(handle, inode, from, in __ext4_block_zero_page_range()
4191 static int ext4_block_zero_page_range(handle_t *handle, in ext4_block_zero_page_range() argument
4210 return __ext4_block_zero_page_range(handle, mapping, from, length); in ext4_block_zero_page_range()
4219 static int ext4_block_truncate_page(handle_t *handle, in ext4_block_truncate_page() argument
4234 return ext4_block_zero_page_range(handle, mapping, from, length); in ext4_block_truncate_page()
4237 int ext4_zero_partial_blocks(handle_t *handle, struct inode *inode, in ext4_zero_partial_blocks() argument
4256 err = ext4_block_zero_page_range(handle, mapping, in ext4_zero_partial_blocks()
4262 err = ext4_block_zero_page_range(handle, mapping, in ext4_zero_partial_blocks()
4269 err = ext4_block_zero_page_range(handle, mapping, in ext4_zero_partial_blocks()
4295 handle_t *handle; in ext4_update_disksize_before_punch() local
4307 handle = ext4_journal_start(inode, EXT4_HT_MISC, 1); in ext4_update_disksize_before_punch()
4308 if (IS_ERR(handle)) in ext4_update_disksize_before_punch()
4309 return PTR_ERR(handle); in ext4_update_disksize_before_punch()
4311 ret = ext4_mark_inode_dirty(handle, inode); in ext4_update_disksize_before_punch()
4312 ext4_journal_stop(handle); in ext4_update_disksize_before_punch()
4412 handle_t *handle; in ext4_punch_hole() local
4464 handle = ext4_journal_start(inode, EXT4_HT_TRUNCATE, credits); in ext4_punch_hole()
4465 if (IS_ERR(handle)) { in ext4_punch_hole()
4466 ret = PTR_ERR(handle); in ext4_punch_hole()
4471 ret = ext4_zero_partial_blocks(handle, inode, offset, length); in ext4_punch_hole()
4482 ext4_fc_track_inode(handle, inode); in ext4_punch_hole()
4493 ret = ext4_ind_remove_space(handle, inode, start_lblk, in ext4_punch_hole()
4504 ext4_fc_track_range(handle, inode, start_lblk, end_lblk); in ext4_punch_hole()
4506 ret = ext4_mark_inode_dirty(handle, inode); in ext4_punch_hole()
4510 ext4_update_inode_fsync_trans(handle, inode, 1); in ext4_punch_hole()
4512 ext4_handle_sync(handle); in ext4_punch_hole()
4514 ext4_journal_stop(handle); in ext4_punch_hole()
4576 handle_t *handle; in ext4_truncate() local
4614 handle = ext4_journal_start(inode, EXT4_HT_TRUNCATE, credits); in ext4_truncate()
4615 if (IS_ERR(handle)) { in ext4_truncate()
4616 err = PTR_ERR(handle); in ext4_truncate()
4621 ext4_block_truncate_page(handle, mapping, inode->i_size); in ext4_truncate()
4632 err = ext4_orphan_add(handle, inode); in ext4_truncate()
4636 ext4_fc_track_inode(handle, inode); in ext4_truncate()
4643 err = ext4_ext_truncate(handle, inode); in ext4_truncate()
4645 ext4_ind_truncate(handle, inode); in ext4_truncate()
4652 ext4_handle_sync(handle); in ext4_truncate()
4663 ext4_orphan_del(handle, inode); in ext4_truncate()
4666 err2 = ext4_mark_inode_dirty(handle, inode); in ext4_truncate()
4669 ext4_journal_stop(handle); in ext4_truncate()
5622 static int ext4_do_update_inode(handle_t *handle, in ext4_do_update_inode() argument
5662 err = ext4_handle_dirty_metadata(handle, NULL, bh); in ext4_do_update_inode()
5668 err = ext4_journal_get_write_access(handle, sb, in ext4_do_update_inode()
5677 ext4_handle_sync(handle); in ext4_do_update_inode()
5678 err = ext4_handle_dirty_metadata(handle, NULL, in ext4_do_update_inode()
5681 ext4_update_inode_fsync_trans(handle, inode, need_datasync); in ext4_do_update_inode()
5886 handle_t *handle; in ext4_setattr() local
5890 handle = ext4_journal_start(inode, EXT4_HT_QUOTA, in ext4_setattr()
5893 if (IS_ERR(handle)) { in ext4_setattr()
5894 error = PTR_ERR(handle); in ext4_setattr()
5906 ext4_journal_stop(handle); in ext4_setattr()
5913 error = ext4_mark_inode_dirty(handle, inode); in ext4_setattr()
5914 ext4_journal_stop(handle); in ext4_setattr()
5921 handle_t *handle; in ext4_setattr() local
5971 handle = ext4_journal_start(inode, EXT4_HT_INODE, 3); in ext4_setattr()
5972 if (IS_ERR(handle)) { in ext4_setattr()
5973 error = PTR_ERR(handle); in ext4_setattr()
5976 if (ext4_handle_valid(handle) && shrink) { in ext4_setattr()
5977 error = ext4_orphan_add(handle, inode); in ext4_setattr()
5989 ext4_block_truncate_page(handle, in ext4_setattr()
5994 ext4_fc_track_range(handle, inode, in ext4_setattr()
6000 handle, inode, in ext4_setattr()
6020 rc = ext4_mark_inode_dirty(handle, inode); in ext4_setattr()
6023 ext4_journal_stop(handle); in ext4_setattr()
6287 int ext4_mark_iloc_dirty(handle_t *handle, in ext4_mark_iloc_dirty() argument
6297 ext4_fc_track_inode(handle, inode); in ext4_mark_iloc_dirty()
6303 err = ext4_do_update_inode(handle, inode, iloc); in ext4_mark_iloc_dirty()
6314 ext4_reserve_inode_write(handle_t *handle, struct inode *inode, in ext4_reserve_inode_write() argument
6326 err = ext4_journal_get_write_access(handle, inode->i_sb, in ext4_reserve_inode_write()
6332 ext4_fc_track_inode(handle, inode); in ext4_reserve_inode_write()
6341 handle_t *handle, int *no_expand) in __ext4_expand_extra_isize() argument
6386 raw_inode, handle); in __ext4_expand_extra_isize()
6404 handle_t *handle) in ext4_try_to_expand_extra_isize() argument
6421 if (ext4_journal_extend(handle, in ext4_try_to_expand_extra_isize()
6429 handle, &no_expand); in ext4_try_to_expand_extra_isize()
6439 handle_t *handle; in ext4_expand_extra_isize() local
6448 handle = ext4_journal_start(inode, EXT4_HT_INODE, in ext4_expand_extra_isize()
6450 if (IS_ERR(handle)) { in ext4_expand_extra_isize()
6451 error = PTR_ERR(handle); in ext4_expand_extra_isize()
6459 error = ext4_journal_get_write_access(handle, inode->i_sb, iloc->bh, in ext4_expand_extra_isize()
6467 handle, &no_expand); in ext4_expand_extra_isize()
6469 rc = ext4_mark_iloc_dirty(handle, inode, iloc); in ext4_expand_extra_isize()
6475 ext4_journal_stop(handle); in ext4_expand_extra_isize()
6492 int __ext4_mark_inode_dirty(handle_t *handle, struct inode *inode, in __ext4_mark_inode_dirty() argument
6501 err = ext4_reserve_inode_write(handle, inode, &iloc); in __ext4_mark_inode_dirty()
6507 iloc, handle); in __ext4_mark_inode_dirty()
6509 err = ext4_mark_iloc_dirty(handle, inode, &iloc); in __ext4_mark_inode_dirty()
6533 handle_t *handle; in ext4_dirty_inode() local
6535 handle = ext4_journal_start(inode, EXT4_HT_INODE, 2); in ext4_dirty_inode()
6536 if (IS_ERR(handle)) in ext4_dirty_inode()
6538 ext4_mark_inode_dirty(handle, inode); in ext4_dirty_inode()
6539 ext4_journal_stop(handle); in ext4_dirty_inode()
6545 handle_t *handle; in ext4_change_inode_journal_flag() local
6617 handle = ext4_journal_start(inode, EXT4_HT_INODE, 1); in ext4_change_inode_journal_flag()
6618 if (IS_ERR(handle)) in ext4_change_inode_journal_flag()
6619 return PTR_ERR(handle); in ext4_change_inode_journal_flag()
6622 EXT4_FC_REASON_JOURNAL_FLAG_CHANGE, handle); in ext4_change_inode_journal_flag()
6623 err = ext4_mark_inode_dirty(handle, inode); in ext4_change_inode_journal_flag()
6624 ext4_handle_sync(handle); in ext4_change_inode_journal_flag()
6625 ext4_journal_stop(handle); in ext4_change_inode_journal_flag()
6631 static int ext4_bh_unmapped(handle_t *handle, struct inode *inode, in ext4_bh_unmapped() argument
6640 handle_t *handle; in ext4_block_page_mkwrite() local
6648 handle = ext4_journal_start(inode, EXT4_HT_WRITE_PAGE, credits); in ext4_block_page_mkwrite()
6649 if (IS_ERR(handle)) in ext4_block_page_mkwrite()
6650 return PTR_ERR(handle); in ext4_block_page_mkwrite()
6664 ret = ext4_block_write_begin(handle, folio, 0, len, get_block); in ext4_block_page_mkwrite()
6672 ret = ext4_journal_folio_buffers(handle, folio, len); in ext4_block_page_mkwrite()
6676 ext4_journal_stop(handle); in ext4_block_page_mkwrite()
6682 ext4_journal_stop(handle); in ext4_block_page_mkwrite()