| /* SPDX-License-Identifier: GPL-2.0 */ |
| #ifndef _IOMAP_INTERNAL_H |
| #define _IOMAP_INTERNAL_H 1 |
| |
| #define IOEND_BATCH_SIZE 4096 |
| |
| /* |
| * Normally we can build bios as big as the data structure supports. |
| * |
| * But for integrity protected I/O we need to respect the maximum size of the |
| * single contiguous allocation for the integrity buffer. |
| */ |
| static inline size_t iomap_max_bio_size(const struct iomap *iomap) |
| { |
| if (iomap->flags & IOMAP_F_INTEGRITY) |
| return max_integrity_io_size(bdev_limits(iomap->bdev)); |
| return BIO_MAX_SIZE; |
| } |
| |
| u32 iomap_finish_ioend_buffered_read(struct iomap_ioend *ioend); |
| u32 iomap_finish_ioend_direct(struct iomap_ioend *ioend); |
| |
| #ifdef CONFIG_BLOCK |
| int iomap_bio_read_folio_range_sync(const struct iomap_iter *iter, |
| struct folio *folio, loff_t pos, size_t len); |
| #else |
| static inline int iomap_bio_read_folio_range_sync(const struct iomap_iter *iter, |
| struct folio *folio, loff_t pos, size_t len) |
| { |
| WARN_ON_ONCE(1); |
| return -EIO; |
| } |
| #endif /* CONFIG_BLOCK */ |
| |
| #endif /* _IOMAP_INTERNAL_H */ |