Re: [PATCH 4/6] xfs: call xfs_flush_unmap_range from xfs_free_file_space

Christoph Hellwig
2024-08-29T03:54:11Z

On Thu, Aug 29, 2024 at 01:03:31PM +1000, Dave Chinner wrote:
> > @@ -848,6 +848,14 @@ xfs_free_file_space(
> > if (len <= 0) /* if nothing being freed */
> > return 0;
> >
> > + /*
> > + * Now AIO and DIO has drained we flush and (if necessary) invalidate
> > + * the cached range over the first operation we are about to run.
> > + */
> > + error = xfs_flush_unmap_range(ip, offset, len);
> > + if (error)
> > + return error;
> > +
> > startoffset_fsb = XFS_B_TO_FSB(mp, offset);
> > endoffset_fsb = XFS_B_TO_FSBT(mp, offset + len);
>
> Ok, so if we ever change the zeroing implementation to not punch a
> hole first, we're going to have to make sure we add this to whatever
> new zeroing implementation we have.
>
> Can you leave a comment in the FALLOC_FL_ZERO_RANGE implementation
> code that notes it currently relies on the xfs_flush_unmap_range()
> in xfs_free_file_space() for correct operation?

Sure.