162306a36Sopenharmony_ci/* SPDX-License-Identifier: GPL-2.0 */
262306a36Sopenharmony_ci
362306a36Sopenharmony_ci#ifndef BTRFS_FILE_H
462306a36Sopenharmony_ci#define BTRFS_FILE_H
562306a36Sopenharmony_ci
662306a36Sopenharmony_ciextern const struct file_operations btrfs_file_operations;
762306a36Sopenharmony_ci
862306a36Sopenharmony_ciint btrfs_sync_file(struct file *file, loff_t start, loff_t end, int datasync);
962306a36Sopenharmony_ciint btrfs_drop_extents(struct btrfs_trans_handle *trans,
1062306a36Sopenharmony_ci		       struct btrfs_root *root, struct btrfs_inode *inode,
1162306a36Sopenharmony_ci		       struct btrfs_drop_extents_args *args);
1262306a36Sopenharmony_ciint btrfs_replace_file_extents(struct btrfs_inode *inode,
1362306a36Sopenharmony_ci			   struct btrfs_path *path, const u64 start,
1462306a36Sopenharmony_ci			   const u64 end,
1562306a36Sopenharmony_ci			   struct btrfs_replace_extent_info *extent_info,
1662306a36Sopenharmony_ci			   struct btrfs_trans_handle **trans_out);
1762306a36Sopenharmony_ciint btrfs_mark_extent_written(struct btrfs_trans_handle *trans,
1862306a36Sopenharmony_ci			      struct btrfs_inode *inode, u64 start, u64 end);
1962306a36Sopenharmony_cissize_t btrfs_do_write_iter(struct kiocb *iocb, struct iov_iter *from,
2062306a36Sopenharmony_ci			    const struct btrfs_ioctl_encoded_io_args *encoded);
2162306a36Sopenharmony_ciint btrfs_release_file(struct inode *inode, struct file *file);
2262306a36Sopenharmony_ciint btrfs_dirty_pages(struct btrfs_inode *inode, struct page **pages,
2362306a36Sopenharmony_ci		      size_t num_pages, loff_t pos, size_t write_bytes,
2462306a36Sopenharmony_ci		      struct extent_state **cached, bool noreserve);
2562306a36Sopenharmony_ciint btrfs_fdatawrite_range(struct inode *inode, loff_t start, loff_t end);
2662306a36Sopenharmony_ciint btrfs_check_nocow_lock(struct btrfs_inode *inode, loff_t pos,
2762306a36Sopenharmony_ci			   size_t *write_bytes, bool nowait);
2862306a36Sopenharmony_civoid btrfs_check_nocow_unlock(struct btrfs_inode *inode);
2962306a36Sopenharmony_cibool btrfs_find_delalloc_in_range(struct btrfs_inode *inode, u64 start, u64 end,
3062306a36Sopenharmony_ci				  struct extent_state **cached_state,
3162306a36Sopenharmony_ci				  u64 *delalloc_start_ret, u64 *delalloc_end_ret);
3262306a36Sopenharmony_ci
3362306a36Sopenharmony_ci#endif
34