Re: [PATCH] iomap: follow the alignment requirement for iomap_dio_hole_iter()
Christoph Hellwig <[email protected]> Thu, 30 Jul 2026 05:01:06 -0700
| Newsgroups | org.kernel.vger.linux-xfs,org.kernel.vger.linux-btrfs,org.kernel.vger.linux-fsdevel |
|---|---|
| Message-ID | <[email protected]> |
On Thu, Jul 30, 2026 at 06:06:17PM +0930, Qu Wenruo wrote: > > iomap generall expects extents to be block aligned, how do you end up > > with non-aligned reporting here? > > The dio read buffer is 2 pages (matching the 8K alignment), but only the > first page is faulted in. > > Furthermore btrfs has disabled page fault during dio read, so the 2nd page > will not be faulted in. > > Thus iov_iter_zero() only got to zero the first page. > > Btrfs always returned a hole that is properly aligned, but as long as bs > > ps, the page fault can always break in the middle, causing unaligned range. Urgg, we really need to get rid of this nofault behavior rather sooner than later. But I think the iomap should always be fsblock alignment. While we can support smaller I/O, the mapping should always be block aligned.