1 #ifndef _BCACHEFS_FS_IO_H
2 #define _BCACHEFS_FS_IO_H
7 int bch2_set_page_dirty(struct page *);
9 int bch2_writepage(struct page *, struct writeback_control *);
10 int bch2_readpage(struct file *, struct page *);
12 int bch2_writepages(struct address_space *, struct writeback_control *);
13 int bch2_readpages(struct file *, struct address_space *,
14 struct list_head *, unsigned);
16 int bch2_write_begin(struct file *, struct address_space *, loff_t,
17 unsigned, unsigned, struct page **, void **);
18 int bch2_write_end(struct file *, struct address_space *, loff_t,
19 unsigned, unsigned, struct page *, void *);
21 ssize_t bch2_direct_IO(struct kiocb *, struct iov_iter *);
23 ssize_t bch2_write_iter(struct kiocb *, struct iov_iter *);
25 int bch2_fsync(struct file *, loff_t, loff_t, int);
27 int bch2_truncate(struct inode *, struct iattr *);
28 long bch2_fallocate_dispatch(struct file *, int, loff_t, loff_t);
30 loff_t bch2_llseek(struct file *, loff_t, int);
32 int bch2_page_mkwrite(struct vm_fault *);
33 void bch2_invalidatepage(struct page *, unsigned int, unsigned int);
34 int bch2_releasepage(struct page *, gfp_t);
35 int bch2_migrate_page(struct address_space *, struct page *,
36 struct page *, enum migrate_mode);
38 struct i_sectors_hook {
39 struct extent_insert_hook hook;
41 struct bch_inode_info *ei;
44 struct bchfs_write_op {
45 struct bch_inode_info *ei;
51 struct bch_write_op op;
54 struct bch_writepage_io {
58 struct bchfs_write_op op;
61 extern struct bio_set *bch2_writepage_bioset;
71 struct disk_reservation res;
74 struct iovec inline_vecs[UIO_FASTIOV];
80 struct bchfs_write_op iop;
83 extern struct bio_set *bch2_dio_write_bioset;
89 struct bch_read_bio rbio;
92 extern struct bio_set *bch2_dio_read_bioset;
94 #endif /* _BCACHEFS_FS_IO_H */