]> git.sesse.net Git - bcachefs-tools-debian/blobdiff - libbcachefs/fs-io.h
Update bcachefs sources to 04f2d2ae5b bcachefs: Fix build error on weird gcc
[bcachefs-tools-debian] / libbcachefs / fs-io.h
index f3fcf947d98b20d8743bf607b64def7ae996a46b..af905331542dd99191b43866ee423991764a8e66 100644 (file)
@@ -1,96 +1,54 @@
-#ifndef _BCACHE_FS_IO_H
-#define _BCACHE_FS_IO_H
+/* SPDX-License-Identifier: GPL-2.0 */
+#ifndef _BCACHEFS_FS_IO_H
+#define _BCACHEFS_FS_IO_H
+
+#ifndef NO_BCACHEFS_FS
 
 #include "buckets.h"
+#include "io_types.h"
+
 #include <linux/uio.h>
 
-int bch2_set_page_dirty(struct page *);
+struct quota_res;
+
+int __must_check bch2_write_inode_size(struct bch_fs *,
+                                      struct bch_inode_info *,
+                                      loff_t, unsigned);
 
-int bch2_writepage(struct page *, struct writeback_control *);
-int bch2_readpage(struct file *, struct page *);
+int bch2_read_folio(struct file *, struct folio *);
 
 int bch2_writepages(struct address_space *, struct writeback_control *);
-int bch2_readpages(struct file *, struct address_space *,
-                  struct list_head *, unsigned);
+void bch2_readahead(struct readahead_control *);
 
 int bch2_write_begin(struct file *, struct address_space *, loff_t,
-                    unsigned, unsigned, struct page **, void **);
+                    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_read_iter(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 *);
+int bch2_truncate(struct mnt_idmap *,
+                 struct bch_inode_info *, 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;
+loff_t bch2_remap_file_range(struct file *, loff_t, struct file *,
+                            loff_t, loff_t, unsigned);
 
-       /* 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;
+loff_t bch2_llseek(struct file *, loff_t, int);
 
-struct dio_read {
-       struct closure          cl;
-       struct kiocb            *req;
-       long                    ret;
-       struct bch_read_bio     rbio;
-};
+vm_fault_t bch2_page_fault(struct vm_fault *);
+vm_fault_t bch2_page_mkwrite(struct vm_fault *);
+void bch2_invalidate_folio(struct folio *, size_t, size_t);
+bool bch2_release_folio(struct folio *, gfp_t);
 
-extern struct bio_set *bch2_dio_read_bioset;
+void bch2_fs_fsio_exit(struct bch_fs *);
+int bch2_fs_fsio_init(struct bch_fs *);
+#else
+static inline void bch2_fs_fsio_exit(struct bch_fs *c) {}
+static inline int bch2_fs_fsio_init(struct bch_fs *c) { return 0; }
+#endif
 
-#endif /* _BCACHE_FS_IO_H */
+#endif /* _BCACHEFS_FS_IO_H */