On Mon, Jun 09, 2025 at 09:12:19AM -0700, Darrick J. Wong wrote: > > + struct iomap_iter *iter = container_of(iomap, struct iomap_iter, > > + iomap); > > /me has been wondering more and more if we should just pass the iter > directly to iomap_begin rather than make them play these container_of > tricks... OTOH I think the whole point of this: > > ret = ops->iomap_begin(iter->inode, iter->pos, iter->len, iter->flags, > &iter->iomap, &iter->srcmap); > > is to "avoid" allowing the iomap users to mess with the internals of the > iomap iter... No, the reason is that the ->iomap_begin interface predates struct iomap_iter. I delayed changing the prototype because I thought I'd get to the second step of willy's iterization idea and kill these methods in favor of a real iterator, but that just doesn't keep happening.