On Mon, Jan 13, 2020 at 06:00:52PM +0000, Chris Mason wrote: > This is true, I didn't explain that part well ;) Depending on > compression etc we might end up poking the xarray inside the actual IO > functions, but the main difference is that btrfs is building a single > bio. You're moving the plug so you'll merge into single bio, but I'd > rather build 2MB bios than merge them. Why don't we store a bio pointer inside the plug? You're opencoding that, iomap is opencoding that, and I bet there's a dozen other places where we pass a bio around. Then blk_finish_plug can submit the bio.