Re: [PATCH v6 3/3] xfs: add support for FALLOC_FL_WRITE_ZEROES
Zhang Yi <[email protected]> Thu, 18 Jun 2026 18:26:12 +0800
| Newsgroups | org.kernel.vger.linux-api,org.kernel.vger.linux-fsdevel,org.kernel.vger.linux-xfs |
|---|---|
| Message-ID | <[email protected]> |
On 6/18/2026 4:59 PM, Christoph Hellwig wrote: > On Thu, Jun 18, 2026 at 11:22:45AM +0800, Zhang Yi wrote: >> 1) if the two blocks straddling the boundaries have not yet been allocated, >> or allocated as unwritten, we should round outward the allocation range >> and zero out all allocated blocks, including those two boundary blocks. >> 2) if the blocks at the boundaries are already in the written state — which >> can occur when we call FALLOC_FL_WRITE_ZEROES within the file size. We >> should be careful here: we should only zero the ranges [offset, offset_ru) >> and [end_rd, end) for the boundary blocks, leaving the already-written >> portions of the boundary blocks intact. >> >> Thoughs? > > Yes. > >> Regarding the second point, the current ext4 implementation has an issue — >> it zeroes out the entire boundary blocks. I overlooked this previously, and >> I appreciate you pointing it out. > > Which means we're missing test coverage for this as well.. > Ha, I just re-checked the ext4 implementation and found that scenario 2 is actually fine, Sorry I misread the code earlier. Fortunately, no data corruption occurred. :-) The real issue is in scenario 1, where the boundary blocks are not correctly converted to written-type extents. As for testing the unaligned case, I also agree that we should explicitly add a dedicated test for it. Relying on existing fsstress and fsx is not reliable enough in this regard. Thanks, Yi.