Re: [PATCH 04/20] block: Add some exports for bcachefs

Christoph Hellwig
2023-07-26T13:20:47Z

On Mon, Jul 24, 2023 at 11:00:37PM -0400, Kent Overstreet wrote:
> In short, iomap is heavily callback based, the bcachefs io paths are
> not - we pass around data structures instead. I discussed this with
> people when iomap was first being written, but iomap ended up being a
> much more conservative approach, more in line with the old buffer heads
> code where the generic code calls into the filesystem to obtain
> mappings.
>
> I'm gradually convincing people of the merits of the bcachefs approach -
> in particular reducing indirect function calls is getting more attention
> these days.

FYI, Matthew has had patches that convert iomap to be an iterator,
and I've massage the first half of them and actuall got them in
before. I'd much rather finish off that work (even if only for
direct I/O initially) than adding another direct I/O code. But
even with out that we should be able to easily pass more private
data, in fact btrfs makes pretty heavy use of that.