[RFC] iomap infrastructure and multipage writes

Christoph Hellwig
2016-03-14T21:03:02Z

Because I've seen some issues with the amount of overhead we spend
in the bmap btree when using reflinks I though I'd dust up the
multipage write code again. This was first started by Dave Chinner
a long time ago, then I did beat it into shape for production runs
in a very constrained ARM NAS enviroment for Tuxera almost as long
ago, and now half a dozen rewrites later it's back.

The basic idea is to avoid the crazy per-block get_blocks overhead
and make use of extents in the buffered write path by iterating over
them instead.

I could probably write a lot more here, but for now I'd like people
to take a look at this version. It passes xfstests fine on blocksize ==
PAGE_SIZE setups, but I haven't done much testing with small block
sizes yet.