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.