diff options
author | Kent Overstreet <kent.overstreet@gmail.com> | 2017-03-19 15:56:34 -0800 |
---|---|---|
committer | Kent Overstreet <kent.overstreet@gmail.com> | 2017-03-19 17:31:47 -0800 |
commit | 5ec39af8eaba49aee7bafa44c661da39e2f40dc3 (patch) | |
tree | 1fb1a981602cbf22c7d2b2dba1168c715d7cecb5 /libbcachefs/fs-io.h | |
parent | bb1941de5378a7b8122d3575dcbc7d0aeb6326f0 (diff) |
Rename from bcache-tools to bcachefs-tools
Diffstat (limited to 'libbcachefs/fs-io.h')
-rw-r--r-- | libbcachefs/fs-io.h | 96 |
1 files changed, 96 insertions, 0 deletions
diff --git a/libbcachefs/fs-io.h b/libbcachefs/fs-io.h new file mode 100644 index 00000000..f3fcf947 --- /dev/null +++ b/libbcachefs/fs-io.h @@ -0,0 +1,96 @@ +#ifndef _BCACHE_FS_IO_H +#define _BCACHE_FS_IO_H + +#include "buckets.h" +#include <linux/uio.h> + +int bch2_set_page_dirty(struct page *); + +int bch2_writepage(struct page *, struct writeback_control *); +int bch2_readpage(struct file *, struct page *); + +int bch2_writepages(struct address_space *, struct writeback_control *); +int bch2_readpages(struct file *, struct address_space *, + struct list_head *, unsigned); + +int bch2_write_begin(struct file *, struct address_space *, loff_t, + unsigned, unsigned, struct page **, void **); +int bch2_write_end(struct file *, struct address_space *, loff_t, + unsigned, unsigned, struct page *, void *); + +ssize_t bch2_direct_IO(struct kiocb *, struct iov_iter *); + +ssize_t bch2_write_iter(struct kiocb *, struct iov_iter *); + +int bch2_fsync(struct file *, loff_t, loff_t, int); + +int bch2_truncate(struct inode *, struct iattr *); +long bch2_fallocate_dispatch(struct file *, int, loff_t, loff_t); + +loff_t bch2_llseek(struct file *, loff_t, int); + +int bch2_page_mkwrite(struct vm_area_struct *, struct vm_fault *); +void bch2_invalidatepage(struct page *, unsigned int, unsigned int); +int bch2_releasepage(struct page *, gfp_t); +int bch2_migrate_page(struct address_space *, struct page *, + struct page *, enum migrate_mode); + +struct i_sectors_hook { + struct extent_insert_hook hook; + s64 sectors; + struct bch_inode_info *ei; +}; + +struct bchfs_write_op { + struct bch_inode_info *ei; + s64 sectors_added; + bool is_dio; + u64 new_i_size; + struct bch_write_op op; +}; + +struct bch_writepage_io { + struct closure cl; + + struct bchfs_write_op op; + + /* must come last: */ + struct bch_write_bio bio; +}; + +extern struct bio_set *bch2_writepage_bioset; + +struct dio_write { + struct closure cl; + struct kiocb *req; + struct bch_fs *c; + long written; + long error; + loff_t offset; + + struct disk_reservation res; + + struct iovec *iovec; + struct iovec inline_vecs[UIO_FASTIOV]; + struct iov_iter iter; + + struct mm_struct *mm; + + struct bchfs_write_op iop; + + /* must be last: */ + struct bch_write_bio bio; +}; + +extern struct bio_set *bch2_dio_write_bioset; + +struct dio_read { + struct closure cl; + struct kiocb *req; + long ret; + struct bch_read_bio rbio; +}; + +extern struct bio_set *bch2_dio_read_bioset; + +#endif /* _BCACHE_FS_IO_H */ |