Re: [PATCH 12/22] iomap: better read bounce buffering support
Christoph Hellwig <[email protected]> Tue, 28 Jul 2026 06:59:44 +0200
| Newsgroups | org.kernel.vger.linux-xfs,org.kernel.vger.linux-block,org.kernel.vger.linux-fsdevel |
|---|---|
| Message-ID | <[email protected]> |
On Mon, Jul 27, 2026 at 07:47:27PM +0530, Anuj Gupta/Anuj Gupta wrote:
> On 7/23/2026 8:19 PM, Christoph Hellwig wrote:
> > +void iomap_bounce_read(struct iomap_ioend *orig_ioend, unsigned int minsize,
> > + void (*submit_ioend)(struct iomap_ioend *ioend))
> > +{
> > + struct inode *inode = orig_ioend->io_inode;
> > + struct bio *orig_bio = &orig_ioend->io_bio;
> > + loff_t file_offset = orig_ioend->io_offset;
> > + sector_t sector = orig_ioend->io_sector;
> > + size_t total_len = round_up(orig_ioend->io_size, minsize);
> > +
> > + WARN_ON_ONCE(!(orig_ioend->io_flags & IOMAP_IOEND_DIRECT));
> > +
> > + do {
> > + struct iomap_ioend *ioend;
> > + struct bio *bio;
> > + int error;
> > +
> > + bio = bio_alloc_bioset(orig_bio->bi_bdev,
> > + min(total_len / minsize, BIO_MAX_VECS),
> > + orig_bio->bi_opf, GFP_KERNEL,
> > + &iomap_ioend_split_bioset);
>
> thw new bio inherits REQ_POLLED via orig_bio->bi_opf but iocb->private
> still points to the never submitted orig_bio; hanging polled reads.
> Maybe mask REQ_POLLED from the bounce bio?
Yes. And I need to come up with a good way to provide test coverage
for polled I/O interactions like this.