Re: [PATCH 06/10] iomap: remove the iomap_file_buffered_write_punch_delalloc return value

Christoph Hellwig
2024-08-28T04:52:56Z

On Tue, Aug 27, 2024 at 09:36:13AM -0700, Darrick J. Wong wrote:
> >
> > As the only instance of ->punch never returns an error, an such an error
> > would be fatal anyway remove the entire error propagation and don't
> > return an error code from iomap_file_buffered_write_punch_delalloc.
>
> Not sure I like this one -- if the ->iomap_begin method returns some
> weird error to iomap_seek_{data,hole}, then I think we'd at least want
> to complain about that?

iomap_file_buffered_write_punch_delalloc never calls into
iomap_seek_{data,hole} and thus ->iomap_begin. It just uses the lower
level mapping_seek_hole_data that checks dirty state, and that always
returns either an offset or -ENXIO, which is a special signal and not
an error.

> Though I guess we're punching delalloc mappings for a failed pagecache
> write, so we've already got ourselves a juicy EIO to throw up to the
> application so maybe it's fine not to bother with the error recovery
> erroring out. Right?

But that is true as well.