Re: [PATCH v2 2/7] iomap: Add zero unwritten mappings dio support

John Garry
2025-01-10T11:59:58Z

On 09/01/2025 07:54, Christoph Hellwig wrote:
> On Tue, Jan 07, 2025 at 05:26:36PM -0800, Darrick J. Wong wrote:
>> "I think we should wire it up as a new FALLOC_FL_WRITE_ZEROES mode,
>> document very vigorously that it exists to facilitate pure overwrites
>> (specifically that it returns EOPNOTSUPP for always-cow files), and not
>> add more ioctls."
>>
>> If we added this new fallocate mode to set up written mappings, would it
>> be enough to write in the programming manuals that applications should
>> use it to prepare a file for block-untorn writes? Perhaps we should
>> change the errno code to EMEDIUMTYPE for the mixed mappings case.
>>
>> Alternately, maybe we/should/ let programs open a lease-fd on a file
>> range, do their untorn writes through the lease fd, and if another
>> thread does something to break the lease, then the lease fd returns EIO
>> until you close it.
> This still violates the "no unexpected errors" paradigm. The whole
> FALLOC_FL_WRITE_ZEROES (I hate that name btw) model would only work
> if we had a software fallback that make the operations slower but
> still work in case of an unexpected change to the extent mapping.

Christoph, Do you have any other suggestion on what that software
fallback would look like? I thought that what I had in this series was a
decent approach, i.e. auto-zero unwritten extents, but it seems not.

cheers