diff options
author | Dave Chinner <dchinner@redhat.com> | 2022-11-23 12:44:38 +1100 |
---|---|---|
committer | Dave Chinner <david@fromorbit.com> | 2022-11-23 12:44:38 +1100 |
commit | 9c7babf94a0d686b552e53aded8d4703d1b8b92b (patch) | |
tree | d468b984eab6a7bc85a49d76c85e4d4592bfd5e8 /include/linux/iomap.h | |
parent | b71f889c18ada210a97aa3eb5e00c0de552234c6 (diff) | |
download | linux-9c7babf94a0d686b552e53aded8d4703d1b8b92b.tar.gz linux-9c7babf94a0d686b552e53aded8d4703d1b8b92b.tar.bz2 linux-9c7babf94a0d686b552e53aded8d4703d1b8b92b.zip |
xfs,iomap: move delalloc punching to iomap
Because that's what Christoph wants for this error handling path
only XFS uses.
It requires a new iomap export for handling errors over delalloc
ranges. This is basically the XFS code as is stands, but even though
Christoph wants this as iomap funcitonality, we still have
to call it from the filesystem specific ->iomap_end callback, and
call into the iomap code with yet another filesystem specific
callback to punch the delalloc extent within the defined ranges.
Signed-off-by: Dave Chinner <dchinner@redhat.com>
Reviewed-by: Darrick J. Wong <djwong@kernel.org>
Diffstat (limited to 'include/linux/iomap.h')
-rw-r--r-- | include/linux/iomap.h | 4 |
1 files changed, 4 insertions, 0 deletions
diff --git a/include/linux/iomap.h b/include/linux/iomap.h index 238a03087e17..0698c4b8ce0e 100644 --- a/include/linux/iomap.h +++ b/include/linux/iomap.h @@ -226,6 +226,10 @@ static inline const struct iomap *iomap_iter_srcmap(const struct iomap_iter *i) ssize_t iomap_file_buffered_write(struct kiocb *iocb, struct iov_iter *from, const struct iomap_ops *ops); +int iomap_file_buffered_write_punch_delalloc(struct inode *inode, + struct iomap *iomap, loff_t pos, loff_t length, ssize_t written, + int (*punch)(struct inode *inode, loff_t pos, loff_t length)); + int iomap_read_folio(struct folio *folio, const struct iomap_ops *ops); void iomap_readahead(struct readahead_control *, const struct iomap_ops *ops); bool iomap_is_partially_uptodate(struct folio *, size_t from, size_t count); |