On Fri, Sep 29, 2023 at 10:27:22AM +0000, John Garry wrote: > Ensure that when creating a mapping that we adhere to all the atomic > write rules. > > We check that the mapping covers the complete range of the write to ensure > that we'll be just creating a single mapping. > > Currently minimum granularity is the FS block size, but it should be > possibly to support lower in future. I really dislike how this forces aligned allocations. Aligned allocations are a nice optimization to offload some of the work to the storage hard/firmware, but we need to support it in general. And I think with out of place writes into the COW fork, and atomic transactions to swap it in we can do that pretty easily. That should also allow to get rid of the horrible forcealign mode, as we can still try align if possible and just fall back to the out of place writes.