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