Re: [PATCH 1/4] iomap: Lift blocksize restriction on atomic writes

Christoph Hellwig
2025-01-22T06:42:55Z

On Fri, Jan 17, 2025 at 10:49:34AM -0800, Darrick J. Wong wrote:
> The trouble is that the br_startoff attribute of cow staging mappings
> aren't persisted on disk anywhere, which is why exchange-range can't
> handle the cow fork. You could open an O_TMPFILE and swap between the
> two files, though that gets expensive per-io unless you're willing to
> stash that temp file somewhere.

Needing another inode is better than trying to steal ranges from the
actual inode we're operating on. But we might just need a different
kind of COW staging for that.

>
> At this point I think we should slap the usual EXPERIMENTAL warning on
> atomic writes through xfs and let John land the simplest multi-fsblock
> untorn write support, which only handles the corner case where all the
> stars are <cough> aligned; and then make an exchange-range prototype
> and/or all the other forcealign stuff.

That is the worst of all possible outcomes. Combing up with an
atomic API that fails for random reasons only on aged file systems
is literally the worst thing we can do. NAK.