On Tue, Aug 27, 2024 at 09:14:16AM -0700, Darrick J. Wong wrote: > Is there any chance that we could get stuck in a loop here? I > think it's the case that if SEEK_HOLE returns data_end == start_byte, > then the next time through the loop, the SEEK_DATA will return something > that is > start_byte. Yes. > Unless someone is very rapidly writing and > punching the page cache? > > Hmm but then if *xfs* is punching delalloc then we're we holding the > iolock so who else could be doing that? Yes. It's only the async direct I/O completions that punch without the lock.