diff options
author | Darrick J. Wong <darrick.wong@oracle.com> | 2018-07-11 22:24:40 -0700 |
---|---|---|
committer | Darrick J. Wong <darrick.wong@oracle.com> | 2018-07-11 22:24:40 -0700 |
commit | c2efdfc100af42cc04525ef0db74b176da59e1a4 (patch) | |
tree | 18dd5e3e42762b00d66c2c86b91ad08c91063b96 /include | |
parent | 1e4b044d22517cae7047c99038abb444423243ca (diff) | |
parent | 806a1477b10a153cd01ee7ccba8ca2492df3e0b2 (diff) | |
download | linux-c2efdfc100af42cc04525ef0db74b176da59e1a4.tar.bz2 |
Merge branch 'iomap-4.19-merge' into xfs-4.19-merge
Diffstat (limited to 'include')
-rw-r--r-- | include/linux/iomap.h | 16 |
1 files changed, 16 insertions, 0 deletions
diff --git a/include/linux/iomap.h b/include/linux/iomap.h index a044a824da85..5eb9ca8d7ce5 100644 --- a/include/linux/iomap.h +++ b/include/linux/iomap.h @@ -9,6 +9,7 @@ struct fiemap_extent_info; struct inode; struct iov_iter; struct kiocb; +struct page; struct vm_area_struct; struct vm_fault; @@ -29,6 +30,7 @@ struct vm_fault; */ #define IOMAP_F_NEW 0x01 /* blocks have been newly allocated */ #define IOMAP_F_DIRTY 0x02 /* uncommitted metadata */ +#define IOMAP_F_BUFFER_HEAD 0x04 /* file system requires buffer heads */ /* * Flags that only need to be reported for IOMAP_REPORT requests: @@ -55,6 +57,16 @@ struct iomap { u16 flags; /* flags for mapping */ struct block_device *bdev; /* block device for I/O */ struct dax_device *dax_dev; /* dax_dev for dax operations */ + void *inline_data; + void *private; /* filesystem private */ + + /* + * Called when finished processing a page in the mapping returned in + * this iomap. At least for now this is only supported in the buffered + * write path. + */ + void (*page_done)(struct inode *inode, loff_t pos, unsigned copied, + struct page *page, struct iomap *iomap); }; /* @@ -88,6 +100,10 @@ struct iomap_ops { ssize_t iomap_file_buffered_write(struct kiocb *iocb, struct iov_iter *from, const struct iomap_ops *ops); +int iomap_readpage(struct page *page, const struct iomap_ops *ops); +int iomap_readpages(struct address_space *mapping, struct list_head *pages, + unsigned nr_pages, const struct iomap_ops *ops); +int iomap_set_page_dirty(struct page *page); int iomap_file_dirty(struct inode *inode, loff_t pos, loff_t len, const struct iomap_ops *ops); int iomap_zero_range(struct inode *inode, loff_t pos, loff_t len, |