file.h 1.9 KB

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