1 | /* SPDX-License-Identifier: GPL-2.0 */ |
2 | |
3 | #ifndef BTRFS_FILE_H |
4 | #define BTRFS_FILE_H |
5 | |
6 | #include <linux/types.h> |
7 | |
8 | struct file; |
9 | struct extent_state; |
10 | struct kiocb; |
11 | struct iov_iter; |
12 | struct inode; |
13 | struct folio; |
14 | struct page; |
15 | struct btrfs_ioctl_encoded_io_args; |
16 | struct btrfs_drop_extents_args; |
17 | struct btrfs_inode; |
18 | struct btrfs_root; |
19 | struct btrfs_path; |
20 | struct btrfs_replace_extent_info; |
21 | struct btrfs_trans_handle; |
22 | |
23 | extern const struct file_operations btrfs_file_operations; |
24 | |
25 | int btrfs_sync_file(struct file *file, loff_t start, loff_t end, int datasync); |
26 | int btrfs_drop_extents(struct btrfs_trans_handle *trans, |
27 | struct btrfs_root *root, struct btrfs_inode *inode, |
28 | struct btrfs_drop_extents_args *args); |
29 | int btrfs_replace_file_extents(struct btrfs_inode *inode, |
30 | struct btrfs_path *path, const u64 start, |
31 | const u64 end, |
32 | struct btrfs_replace_extent_info *extent_info, |
33 | struct btrfs_trans_handle **trans_out); |
34 | int btrfs_mark_extent_written(struct btrfs_trans_handle *trans, |
35 | struct btrfs_inode *inode, u64 start, u64 end); |
36 | ssize_t btrfs_do_write_iter(struct kiocb *iocb, struct iov_iter *from, |
37 | const struct btrfs_ioctl_encoded_io_args *encoded); |
38 | int btrfs_release_file(struct inode *inode, struct file *file); |
39 | int btrfs_dirty_folio(struct btrfs_inode *inode, struct folio *folio, loff_t pos, |
40 | size_t write_bytes, struct extent_state **cached, bool noreserve); |
41 | int btrfs_fdatawrite_range(struct btrfs_inode *inode, loff_t start, loff_t end); |
42 | int btrfs_check_nocow_lock(struct btrfs_inode *inode, loff_t pos, |
43 | size_t *write_bytes, bool nowait); |
44 | void btrfs_check_nocow_unlock(struct btrfs_inode *inode); |
45 | bool btrfs_find_delalloc_in_range(struct btrfs_inode *inode, u64 start, u64 end, |
46 | struct extent_state **cached_state, |
47 | u64 *delalloc_start_ret, u64 *delalloc_end_ret); |
48 | int btrfs_write_check(struct kiocb *iocb, size_t count); |
49 | ssize_t btrfs_buffered_write(struct kiocb *iocb, struct iov_iter *i); |
50 | |
51 | #endif |
52 | |