Lines Matching refs:inode

127 int btrfs_dirty_pages(struct btrfs_inode *inode, struct page **pages,  in btrfs_dirty_pages()  argument
131 struct btrfs_fs_info *fs_info = inode->root->fs_info; in btrfs_dirty_pages()
138 loff_t isize = i_size_read(&inode->vfs_inode); in btrfs_dirty_pages()
158 clear_extent_bit(&inode->io_tree, start_pos, end_of_last_block, in btrfs_dirty_pages()
162 err = btrfs_set_extent_delalloc(inode, start_pos, end_of_last_block, in btrfs_dirty_pages()
181 i_size_write(&inode->vfs_inode, end_pos); in btrfs_dirty_pages()
201 struct btrfs_root *root, struct btrfs_inode *inode, in btrfs_drop_extents() argument
210 u64 ino = btrfs_ino(inode); in btrfs_drop_extents()
242 btrfs_drop_extent_map_range(inode, args->start, args->end - 1, false); in btrfs_drop_extents()
244 if (args->start >= inode->disk_i_size && !args->replace_extent) in btrfs_drop_extents()
595 struct btrfs_inode *inode, u64 start, u64 end) in btrfs_mark_extent_written() argument
597 struct btrfs_root *root = inode->root; in btrfs_mark_extent_written()
615 u64 ino = btrfs_ino(inode); in btrfs_mark_extent_written()
843 static int prepare_uptodate_page(struct inode *inode, in prepare_uptodate_page() argument
871 if (page->mapping != inode->i_mapping || !PagePrivate(page)) { in prepare_uptodate_page()
889 static gfp_t get_prepare_gfp_flags(struct inode *inode, bool nowait) in get_prepare_gfp_flags() argument
893 gfp = btrfs_alloc_write_mask(inode->i_mapping); in get_prepare_gfp_flags()
905 static noinline int prepare_pages(struct inode *inode, struct page **pages, in prepare_pages() argument
912 gfp_t mask = get_prepare_gfp_flags(inode, nowait); in prepare_pages()
919 pages[i] = pagecache_get_page(inode->i_mapping, index + i, in prepare_pages()
937 err = prepare_uptodate_page(inode, pages[i], pos, in prepare_pages()
940 err = prepare_uptodate_page(inode, pages[i], in prepare_pages()
976 lock_and_cleanup_extent_if_need(struct btrfs_inode *inode, struct page **pages, in lock_and_cleanup_extent_if_need() argument
982 struct btrfs_fs_info *fs_info = inode->root->fs_info; in lock_and_cleanup_extent_if_need()
991 if (start_pos < inode->vfs_inode.i_size) { in lock_and_cleanup_extent_if_need()
995 if (!try_lock_extent(&inode->io_tree, start_pos, last_pos, in lock_and_cleanup_extent_if_need()
1006 lock_extent(&inode->io_tree, start_pos, last_pos, cached_state); in lock_and_cleanup_extent_if_need()
1009 ordered = btrfs_lookup_ordered_range(inode, start_pos, in lock_and_cleanup_extent_if_need()
1014 unlock_extent(&inode->io_tree, start_pos, last_pos, in lock_and_cleanup_extent_if_need()
1061 int btrfs_check_nocow_lock(struct btrfs_inode *inode, loff_t pos, in btrfs_check_nocow_lock() argument
1064 struct btrfs_fs_info *fs_info = inode->root->fs_info; in btrfs_check_nocow_lock()
1065 struct btrfs_root *root = inode->root; in btrfs_check_nocow_lock()
1071 if (!(inode->flags & (BTRFS_INODE_NODATACOW | BTRFS_INODE_PREALLOC))) in btrfs_check_nocow_lock()
1083 if (!btrfs_try_lock_ordered_range(inode, lockstart, lockend, in btrfs_check_nocow_lock()
1089 btrfs_lock_and_flush_ordered_range(inode, lockstart, lockend, in btrfs_check_nocow_lock()
1092 ret = can_nocow_extent(&inode->vfs_inode, lockstart, &num_bytes, in btrfs_check_nocow_lock()
1099 unlock_extent(&inode->io_tree, lockstart, lockend, &cached_state); in btrfs_check_nocow_lock()
1104 void btrfs_check_nocow_unlock(struct btrfs_inode *inode) in btrfs_check_nocow_unlock() argument
1106 btrfs_drew_write_unlock(&inode->root->snapshot_lock); in btrfs_check_nocow_unlock()
1109 static void update_time_for_write(struct inode *inode) in update_time_for_write() argument
1113 if (IS_NOCMTIME(inode)) in update_time_for_write()
1116 now = current_time(inode); in update_time_for_write()
1117 if (!timespec64_equal(&inode->i_mtime, &now)) in update_time_for_write()
1118 inode->i_mtime = now; in update_time_for_write()
1120 ctime = inode_get_ctime(inode); in update_time_for_write()
1122 inode_set_ctime_to_ts(inode, now); in update_time_for_write()
1124 if (IS_I_VERSION(inode)) in update_time_for_write()
1125 inode_inc_iversion(inode); in update_time_for_write()
1132 struct inode *inode = file_inode(file); in btrfs_write_check() local
1133 struct btrfs_fs_info *fs_info = btrfs_sb(inode->i_sb); in btrfs_write_check()
1146 !(BTRFS_I(inode)->flags & (BTRFS_INODE_NODATACOW | BTRFS_INODE_PREALLOC))) in btrfs_write_check()
1159 update_time_for_write(inode); in btrfs_write_check()
1162 oldsize = i_size_read(inode); in btrfs_write_check()
1167 ret = btrfs_cont_expand(BTRFS_I(inode), oldsize, end_pos); in btrfs_write_check()
1180 struct inode *inode = file_inode(file); in btrfs_buffered_write() local
1181 struct btrfs_fs_info *fs_info = btrfs_sb(inode->i_sb); in btrfs_buffered_write()
1192 loff_t old_isize = i_size_read(inode); in btrfs_buffered_write()
1200 ret = btrfs_inode_lock(BTRFS_I(inode), ilock_flags); in btrfs_buffered_write()
1251 ret = btrfs_check_data_free_space(BTRFS_I(inode), in btrfs_buffered_write()
1267 can_nocow = btrfs_check_nocow_lock(BTRFS_I(inode), pos, in btrfs_buffered_write()
1283 ret = btrfs_delalloc_reserve_metadata(BTRFS_I(inode), in btrfs_buffered_write()
1288 btrfs_free_reserved_data_space(BTRFS_I(inode), in btrfs_buffered_write()
1292 btrfs_check_nocow_unlock(BTRFS_I(inode)); in btrfs_buffered_write()
1301 ret = balance_dirty_pages_ratelimited_flags(inode->i_mapping, bdp_flags); in btrfs_buffered_write()
1303 btrfs_delalloc_release_extents(BTRFS_I(inode), reserve_bytes); in btrfs_buffered_write()
1312 ret = prepare_pages(inode, pages, num_pages, in btrfs_buffered_write()
1315 btrfs_delalloc_release_extents(BTRFS_I(inode), in btrfs_buffered_write()
1321 BTRFS_I(inode), pages, in btrfs_buffered_write()
1328 btrfs_delalloc_release_extents(BTRFS_I(inode), in btrfs_buffered_write()
1362 btrfs_delalloc_release_metadata(BTRFS_I(inode), in btrfs_buffered_write()
1370 btrfs_delalloc_release_space(BTRFS_I(inode), in btrfs_buffered_write()
1379 ret = btrfs_dirty_pages(BTRFS_I(inode), pages, in btrfs_buffered_write()
1391 unlock_extent(&BTRFS_I(inode)->io_tree, lockstart, in btrfs_buffered_write()
1396 btrfs_delalloc_release_extents(BTRFS_I(inode), reserve_bytes); in btrfs_buffered_write()
1404 btrfs_check_nocow_unlock(BTRFS_I(inode)); in btrfs_buffered_write()
1418 btrfs_check_nocow_unlock(BTRFS_I(inode)); in btrfs_buffered_write()
1419 btrfs_delalloc_release_metadata(BTRFS_I(inode), in btrfs_buffered_write()
1422 btrfs_delalloc_release_space(BTRFS_I(inode), in btrfs_buffered_write()
1431 pagecache_isize_extended(inode, old_isize, iocb->ki_pos); in btrfs_buffered_write()
1435 btrfs_inode_unlock(BTRFS_I(inode), ilock_flags); in btrfs_buffered_write()
1456 struct inode *inode = file_inode(file); in btrfs_direct_write() local
1457 struct btrfs_fs_info *fs_info = btrfs_sb(inode->i_sb); in btrfs_direct_write()
1476 if (iocb->ki_pos + iov_iter_count(from) <= i_size_read(inode) && IS_NOSEC(inode)) in btrfs_direct_write()
1480 err = btrfs_inode_lock(BTRFS_I(inode), ilock_flags); in btrfs_direct_write()
1485 if ((ilock_flags & BTRFS_ILOCK_SHARED) && !IS_NOSEC(inode)) { in btrfs_direct_write()
1486 btrfs_inode_unlock(BTRFS_I(inode), ilock_flags); in btrfs_direct_write()
1493 btrfs_inode_unlock(BTRFS_I(inode), ilock_flags); in btrfs_direct_write()
1499 btrfs_inode_unlock(BTRFS_I(inode), ilock_flags); in btrfs_direct_write()
1509 pos + iov_iter_count(from) > i_size_read(inode)) { in btrfs_direct_write()
1510 btrfs_inode_unlock(BTRFS_I(inode), ilock_flags); in btrfs_direct_write()
1516 btrfs_inode_unlock(BTRFS_I(inode), ilock_flags); in btrfs_direct_write()
1547 btrfs_inode_unlock(BTRFS_I(inode), ilock_flags); in btrfs_direct_write()
1613 err = btrfs_fdatawrite_range(inode, pos, endbyte); in btrfs_direct_write()
1616 err = filemap_fdatawait_range(inode->i_mapping, pos, endbyte); in btrfs_direct_write()
1631 struct inode *inode = file_inode(file); in btrfs_encoded_write() local
1635 btrfs_inode_lock(BTRFS_I(inode), 0); in btrfs_encoded_write()
1654 btrfs_inode_unlock(BTRFS_I(inode), 0); in btrfs_encoded_write()
1662 struct btrfs_inode *inode = BTRFS_I(file_inode(file)); in btrfs_do_write_iter() local
1670 if (BTRFS_FS_ERROR(inode->root->fs_info)) in btrfs_do_write_iter()
1687 btrfs_set_inode_last_sub_trans(inode); in btrfs_do_write_iter()
1703 int btrfs_release_file(struct inode *inode, struct file *filp) in btrfs_release_file() argument
1721 &BTRFS_I(inode)->runtime_flags)) in btrfs_release_file()
1722 filemap_flush(inode->i_mapping); in btrfs_release_file()
1726 static int start_ordered_ops(struct inode *inode, loff_t start, loff_t end) in start_ordered_ops() argument
1738 ret = btrfs_fdatawrite_range(inode, start, end); in start_ordered_ops()
1746 struct btrfs_inode *inode = BTRFS_I(ctx->inode); in skip_inode_logging() local
1747 struct btrfs_fs_info *fs_info = inode->root->fs_info; in skip_inode_logging()
1749 if (btrfs_inode_in_log(inode, fs_info->generation) && in skip_inode_logging()
1760 if (inode->last_trans <= fs_info->last_trans_committed && in skip_inode_logging()
1761 (test_bit(BTRFS_INODE_NEEDS_FULL_SYNC, &inode->runtime_flags) || in skip_inode_logging()
1782 struct inode *inode = d_inode(dentry); in btrfs_sync_file() local
1783 struct btrfs_fs_info *fs_info = btrfs_sb(inode->i_sb); in btrfs_sync_file()
1784 struct btrfs_root *root = BTRFS_I(inode)->root; in btrfs_sync_file()
1793 btrfs_init_log_ctx(&ctx, inode); in btrfs_sync_file()
1813 ret = start_ordered_ops(inode, start, end); in btrfs_sync_file()
1817 btrfs_inode_lock(BTRFS_I(inode), BTRFS_ILOCK_MMAP); in btrfs_sync_file()
1839 ret = start_ordered_ops(inode, start, end); in btrfs_sync_file()
1841 btrfs_inode_unlock(BTRFS_I(inode), BTRFS_ILOCK_MMAP); in btrfs_sync_file()
1854 &BTRFS_I(inode)->runtime_flags); in btrfs_sync_file()
1872 ret = btrfs_wait_ordered_range(inode, start, len); in btrfs_sync_file()
1879 btrfs_get_ordered_extents_for_logging(BTRFS_I(inode), in btrfs_sync_file()
1881 ret = filemap_fdatawait_range(inode->i_mapping, start, end); in btrfs_sync_file()
1897 &BTRFS_I(inode)->runtime_flags); in btrfs_sync_file()
1905 ret = filemap_check_wb_err(inode->i_mapping, file->f_wb_err); in btrfs_sync_file()
1944 btrfs_inode_unlock(BTRFS_I(inode), BTRFS_ILOCK_MMAP); in btrfs_sync_file()
1976 ret = btrfs_wait_ordered_range(inode, start, len); in btrfs_sync_file()
2012 btrfs_inode_unlock(BTRFS_I(inode), BTRFS_ILOCK_MMAP); in btrfs_sync_file()
2035 static int hole_mergeable(struct btrfs_inode *inode, struct extent_buffer *leaf, in hole_mergeable() argument
2045 if (key.objectid != btrfs_ino(inode) || in hole_mergeable()
2065 struct btrfs_inode *inode, in fill_holes() argument
2069 struct btrfs_root *root = inode->root; in fill_holes()
2079 key.objectid = btrfs_ino(inode); in fill_holes()
2095 if (hole_mergeable(inode, leaf, path->slots[0] - 1, offset, end)) { in fill_holes()
2111 if (hole_mergeable(inode, leaf, path->slots[0], offset, end)) { in fill_holes()
2129 ret = btrfs_insert_hole_extent(trans, root, btrfs_ino(inode), offset, in fill_holes()
2139 btrfs_drop_extent_map_range(inode, offset, end - 1, false); in fill_holes()
2140 btrfs_set_inode_full_sync(inode); in fill_holes()
2153 ret = btrfs_replace_extent_map_range(inode, hole_em, true); in fill_holes()
2156 btrfs_set_inode_full_sync(inode); in fill_holes()
2168 static int find_first_non_hole(struct btrfs_inode *inode, u64 *start, u64 *len) in find_first_non_hole() argument
2170 struct btrfs_fs_info *fs_info = inode->root->fs_info; in find_first_non_hole()
2174 em = btrfs_get_extent(inode, NULL, 0, in find_first_non_hole()
2191 static void btrfs_punch_hole_lock_range(struct inode *inode, in btrfs_punch_hole_lock_range() argument
2208 truncate_pagecache_range(inode, lockstart, lockend); in btrfs_punch_hole_lock_range()
2210 lock_extent(&BTRFS_I(inode)->io_tree, lockstart, lockend, in btrfs_punch_hole_lock_range()
2222 if (!filemap_range_has_page(inode->i_mapping, page_lockstart, in btrfs_punch_hole_lock_range()
2226 unlock_extent(&BTRFS_I(inode)->io_tree, lockstart, lockend, in btrfs_punch_hole_lock_range()
2230 btrfs_assert_inode_range_clean(BTRFS_I(inode), lockstart, lockend); in btrfs_punch_hole_lock_range()
2234 struct btrfs_inode *inode, in btrfs_insert_replace_extent() argument
2241 struct btrfs_root *root = inode->root; in btrfs_insert_replace_extent()
2254 btrfs_update_inode_bytes(inode, 0, bytes_to_drop); in btrfs_insert_replace_extent()
2258 key.objectid = btrfs_ino(inode); in btrfs_insert_replace_extent()
2279 ret = btrfs_inode_set_file_extent_range(inode, extent_info->file_offset, in btrfs_insert_replace_extent()
2286 btrfs_update_inode_bytes(inode, 0, bytes_to_drop); in btrfs_insert_replace_extent()
2290 btrfs_update_inode_bytes(inode, replace_len, bytes_to_drop); in btrfs_insert_replace_extent()
2297 btrfs_ino(inode), in btrfs_insert_replace_extent()
2309 btrfs_ino(inode), ref_offset, 0, false); in btrfs_insert_replace_extent()
2327 int btrfs_replace_file_extents(struct btrfs_inode *inode, in btrfs_replace_file_extents() argument
2334 struct btrfs_root *root = inode->root; in btrfs_replace_file_extents()
2337 u64 ino_size = round_up(inode->vfs_inode.i_size, fs_info->sectorsize); in btrfs_replace_file_extents()
2386 ret = btrfs_drop_extents(trans, root, inode, &drop_args); in btrfs_replace_file_extents()
2389 btrfs_update_inode_bytes(inode, 0, in btrfs_replace_file_extents()
2411 ret = fill_holes(trans, inode, path, cur_offset, in btrfs_replace_file_extents()
2430 ret = btrfs_inode_clear_file_extent_range(inode, in btrfs_replace_file_extents()
2449 ret = btrfs_insert_replace_extent(trans, inode, path, in btrfs_replace_file_extents()
2473 inode_inc_iversion(&inode->vfs_inode); in btrfs_replace_file_extents()
2476 inode->vfs_inode.i_mtime = inode_set_ctime_current(&inode->vfs_inode); in btrfs_replace_file_extents()
2478 ret = btrfs_update_inode(trans, root, inode); in btrfs_replace_file_extents()
2501 ret = find_first_non_hole(inode, &cur_offset, &len); in btrfs_replace_file_extents()
2518 btrfs_set_inode_full_sync(inode); in btrfs_replace_file_extents()
2544 ret = fill_holes(trans, inode, path, cur_offset, in btrfs_replace_file_extents()
2553 ret = btrfs_inode_clear_file_extent_range(inode, cur_offset, in btrfs_replace_file_extents()
2562 ret = btrfs_insert_replace_extent(trans, inode, path, in btrfs_replace_file_extents()
2588 struct inode *inode = file_inode(file); in btrfs_punch_hole() local
2589 struct btrfs_fs_info *fs_info = btrfs_sb(inode->i_sb); in btrfs_punch_hole()
2590 struct btrfs_root *root = BTRFS_I(inode)->root; in btrfs_punch_hole()
2605 btrfs_inode_lock(BTRFS_I(inode), BTRFS_ILOCK_MMAP); in btrfs_punch_hole()
2607 ret = btrfs_wait_ordered_range(inode, offset, len); in btrfs_punch_hole()
2611 ino_size = round_up(inode->i_size, fs_info->sectorsize); in btrfs_punch_hole()
2612 ret = find_first_non_hole(BTRFS_I(inode), &offset, &len); in btrfs_punch_hole()
2640 ret = btrfs_truncate_block(BTRFS_I(inode), offset, len, in btrfs_punch_hole()
2651 ret = btrfs_truncate_block(BTRFS_I(inode), offset, 0, 0); in btrfs_punch_hole()
2653 btrfs_inode_unlock(BTRFS_I(inode), BTRFS_ILOCK_MMAP); in btrfs_punch_hole()
2666 ret = find_first_non_hole(BTRFS_I(inode), &offset, &len); in btrfs_punch_hole()
2680 ret = find_first_non_hole(BTRFS_I(inode), &tail_start, &tail_len); in btrfs_punch_hole()
2687 ret = btrfs_truncate_block(BTRFS_I(inode), in btrfs_punch_hole()
2701 btrfs_punch_hole_lock_range(inode, lockstart, lockend, &cached_state); in btrfs_punch_hole()
2709 ret = btrfs_replace_file_extents(BTRFS_I(inode), path, lockstart, in btrfs_punch_hole()
2716 inode_inc_iversion(inode); in btrfs_punch_hole()
2717 inode->i_mtime = inode_set_ctime_current(inode); in btrfs_punch_hole()
2718 ret = btrfs_update_inode(trans, root, BTRFS_I(inode)); in btrfs_punch_hole()
2723 unlock_extent(&BTRFS_I(inode)->io_tree, lockstart, lockend, in btrfs_punch_hole()
2734 struct timespec64 now = inode_set_ctime_current(inode); in btrfs_punch_hole()
2736 inode_inc_iversion(inode); in btrfs_punch_hole()
2737 inode->i_mtime = now; in btrfs_punch_hole()
2744 ret = btrfs_update_inode(trans, root, BTRFS_I(inode)); in btrfs_punch_hole()
2750 btrfs_inode_unlock(BTRFS_I(inode), BTRFS_ILOCK_MMAP); in btrfs_punch_hole()
2792 static int btrfs_fallocate_update_isize(struct inode *inode, in btrfs_fallocate_update_isize() argument
2797 struct btrfs_root *root = BTRFS_I(inode)->root; in btrfs_fallocate_update_isize()
2801 if (mode & FALLOC_FL_KEEP_SIZE || end <= i_size_read(inode)) in btrfs_fallocate_update_isize()
2808 inode_set_ctime_current(inode); in btrfs_fallocate_update_isize()
2809 i_size_write(inode, end); in btrfs_fallocate_update_isize()
2810 btrfs_inode_safe_disk_i_size_write(BTRFS_I(inode), 0); in btrfs_fallocate_update_isize()
2811 ret = btrfs_update_inode(trans, root, BTRFS_I(inode)); in btrfs_fallocate_update_isize()
2823 static int btrfs_zero_range_check_range_boundary(struct btrfs_inode *inode, in btrfs_zero_range_check_range_boundary() argument
2826 const u64 sectorsize = inode->root->fs_info->sectorsize; in btrfs_zero_range_check_range_boundary()
2831 em = btrfs_get_extent(inode, NULL, 0, offset, sectorsize); in btrfs_zero_range_check_range_boundary()
2846 static int btrfs_zero_range(struct inode *inode, in btrfs_zero_range() argument
2851 struct btrfs_fs_info *fs_info = BTRFS_I(inode)->root->fs_info; in btrfs_zero_range()
2862 em = btrfs_get_extent(BTRFS_I(inode), NULL, 0, alloc_start, in btrfs_zero_range()
2888 ret = btrfs_fallocate_update_isize(inode, offset + len, in btrfs_zero_range()
2906 em = btrfs_get_extent(BTRFS_I(inode), NULL, 0, alloc_start, in btrfs_zero_range()
2915 ret = btrfs_fallocate_update_isize(inode, offset + len, in btrfs_zero_range()
2921 ret = btrfs_truncate_block(BTRFS_I(inode), offset, len, in btrfs_zero_range()
2924 ret = btrfs_fallocate_update_isize(inode, in btrfs_zero_range()
2945 ret = btrfs_zero_range_check_range_boundary(BTRFS_I(inode), in btrfs_zero_range()
2953 ret = btrfs_truncate_block(BTRFS_I(inode), offset, 0, 0); in btrfs_zero_range()
2962 ret = btrfs_zero_range_check_range_boundary(BTRFS_I(inode), in btrfs_zero_range()
2970 ret = btrfs_truncate_block(BTRFS_I(inode), offset + len, in btrfs_zero_range()
2986 ret = btrfs_alloc_data_chunk_ondemand(BTRFS_I(inode), in btrfs_zero_range()
2991 btrfs_punch_hole_lock_range(inode, lockstart, lockend, in btrfs_zero_range()
2993 ret = btrfs_qgroup_reserve_data(BTRFS_I(inode), &data_reserved, in btrfs_zero_range()
2996 unlock_extent(&BTRFS_I(inode)->io_tree, lockstart, in btrfs_zero_range()
3000 ret = btrfs_prealloc_file_range(inode, mode, alloc_start, in btrfs_zero_range()
3002 i_blocksize(inode), in btrfs_zero_range()
3004 unlock_extent(&BTRFS_I(inode)->io_tree, lockstart, lockend, in btrfs_zero_range()
3012 ret = btrfs_fallocate_update_isize(inode, offset + len, mode); in btrfs_zero_range()
3015 btrfs_free_reserved_data_space(BTRFS_I(inode), data_reserved, in btrfs_zero_range()
3025 struct inode *inode = file_inode(file); in btrfs_fallocate() local
3042 int blocksize = BTRFS_I(inode)->root->fs_info->sectorsize; in btrfs_fallocate()
3046 if (btrfs_is_zoned(btrfs_sb(inode->i_sb))) in btrfs_fallocate()
3061 btrfs_inode_lock(BTRFS_I(inode), BTRFS_ILOCK_MMAP); in btrfs_fallocate()
3063 if (!(mode & FALLOC_FL_KEEP_SIZE) && offset + len > inode->i_size) { in btrfs_fallocate()
3064 ret = inode_newsize_ok(inode, offset + len); in btrfs_fallocate()
3080 if (alloc_start > inode->i_size) { in btrfs_fallocate()
3081 ret = btrfs_cont_expand(BTRFS_I(inode), i_size_read(inode), in btrfs_fallocate()
3085 } else if (offset + len > inode->i_size) { in btrfs_fallocate()
3091 ret = btrfs_truncate_block(BTRFS_I(inode), inode->i_size, 0, 0); in btrfs_fallocate()
3104 ret = btrfs_wait_ordered_range(inode, alloc_start, in btrfs_fallocate()
3110 ret = btrfs_zero_range(inode, offset, len, mode); in btrfs_fallocate()
3111 btrfs_inode_unlock(BTRFS_I(inode), BTRFS_ILOCK_MMAP); in btrfs_fallocate()
3116 lock_extent(&BTRFS_I(inode)->io_tree, alloc_start, locked_end, in btrfs_fallocate()
3119 btrfs_assert_inode_range_clean(BTRFS_I(inode), alloc_start, locked_end); in btrfs_fallocate()
3123 em = btrfs_get_extent(BTRFS_I(inode), NULL, 0, cur_offset, in btrfs_fallocate()
3133 (cur_offset >= inode->i_size && in btrfs_fallocate()
3142 ret = btrfs_qgroup_reserve_data(BTRFS_I(inode), in btrfs_fallocate()
3160 ret = btrfs_alloc_data_chunk_ondemand(BTRFS_I(inode), in btrfs_fallocate()
3172 ret = btrfs_prealloc_file_range(inode, mode, in btrfs_fallocate()
3174 range->len, i_blocksize(inode), in btrfs_fallocate()
3183 btrfs_free_reserved_data_space(BTRFS_I(inode), in btrfs_fallocate()
3189 btrfs_qgroup_free_data(BTRFS_I(inode), data_reserved, in btrfs_fallocate()
3203 ret = btrfs_fallocate_update_isize(inode, actual_end, mode); in btrfs_fallocate()
3205 unlock_extent(&BTRFS_I(inode)->io_tree, alloc_start, locked_end, in btrfs_fallocate()
3208 btrfs_inode_unlock(BTRFS_I(inode), BTRFS_ILOCK_MMAP); in btrfs_fallocate()
3219 static bool find_delalloc_subrange(struct btrfs_inode *inode, u64 start, u64 end, in find_delalloc_subrange() argument
3236 spin_lock(&inode->lock); in find_delalloc_subrange()
3237 if (inode->delalloc_bytes > 0) { in find_delalloc_subrange()
3238 spin_unlock(&inode->lock); in find_delalloc_subrange()
3240 delalloc_len = count_range_bits(&inode->io_tree, in find_delalloc_subrange()
3245 spin_unlock(&inode->lock); in find_delalloc_subrange()
3290 oe = btrfs_lookup_first_ordered_range(inode, start, len); in find_delalloc_subrange()
3343 bool btrfs_find_delalloc_in_range(struct btrfs_inode *inode, u64 start, u64 end, in btrfs_find_delalloc_in_range() argument
3347 u64 cur_offset = round_down(start, inode->root->fs_info->sectorsize); in btrfs_find_delalloc_in_range()
3357 delalloc = find_delalloc_subrange(inode, cur_offset, end, in btrfs_find_delalloc_in_range()
3403 static bool find_desired_extent_in_hole(struct btrfs_inode *inode, int whence, in find_desired_extent_in_hole() argument
3411 delalloc = btrfs_find_delalloc_in_range(inode, start, end, cached_state, in find_desired_extent_in_hole()
3456 struct btrfs_inode *inode = BTRFS_I(file->f_mapping->host); in find_desired_extent() local
3458 struct btrfs_fs_info *fs_info = inode->root->fs_info; in find_desired_extent()
3461 const loff_t i_size = i_size_read(&inode->vfs_inode); in find_desired_extent()
3462 const u64 ino = btrfs_ino(inode); in find_desired_extent()
3463 struct btrfs_root *root = inode->root; in find_desired_extent()
3481 !(inode->flags & BTRFS_INODE_PREALLOC) && in find_desired_extent()
3482 inode_get_bytes(&inode->vfs_inode) == i_size) in find_desired_extent()
3524 lock_extent(&inode->io_tree, lockstart, lockend, &cached_state); in find_desired_extent()
3578 found = find_desired_extent_in_hole(inode, whence, in find_desired_extent()
3619 found = find_desired_extent_in_hole(inode, whence, in find_desired_extent()
3662 found = find_desired_extent_in_hole(inode, whence, in find_desired_extent()
3670 unlock_extent(&inode->io_tree, lockstart, lockend, &cached_state); in find_desired_extent()
3684 struct inode *inode = file->f_mapping->host; in btrfs_file_llseek() local
3691 btrfs_inode_lock(BTRFS_I(inode), BTRFS_ILOCK_SHARED); in btrfs_file_llseek()
3693 btrfs_inode_unlock(BTRFS_I(inode), BTRFS_ILOCK_SHARED); in btrfs_file_llseek()
3700 return vfs_setpos(file, offset, inode->i_sb->s_maxbytes); in btrfs_file_llseek()
3703 static int btrfs_file_open(struct inode *inode, struct file *filp) in btrfs_file_open() argument
3710 ret = fsverity_file_open(inode, filp); in btrfs_file_open()
3713 return generic_file_open(inode, filp); in btrfs_file_open()
3743 struct inode *inode = file_inode(iocb->ki_filp); in btrfs_direct_read() local
3748 if (fsverity_active(inode)) in btrfs_direct_read()
3751 if (check_direct_read(btrfs_sb(inode->i_sb), to, iocb->ki_pos)) in btrfs_direct_read()
3754 btrfs_inode_lock(BTRFS_I(inode), BTRFS_ILOCK_SHARED); in btrfs_direct_read()
3803 btrfs_inode_unlock(BTRFS_I(inode), BTRFS_ILOCK_SHARED); in btrfs_direct_read()
3840 int btrfs_fdatawrite_range(struct inode *inode, loff_t start, loff_t end) in btrfs_fdatawrite_range() argument
3858 ret = filemap_fdatawrite_range(inode->i_mapping, start, end); in btrfs_fdatawrite_range()
3860 &BTRFS_I(inode)->runtime_flags)) in btrfs_fdatawrite_range()
3861 ret = filemap_fdatawrite_range(inode->i_mapping, start, end); in btrfs_fdatawrite_range()