On Fri, May 19, 2023 at 08:40:15AM +0100, David Howells wrote: > Hi Jens, Al, Christoph, > > The first half of this patchset kills off ITER_PIPE to avoid a race between > truncate, iov_iter_revert() on the pipe and an as-yet incomplete DMA to a > bio with unpinned/unref'ed pages from an O_DIRECT splice read. This causes > memory corruption[2]. Instead, we use filemap_splice_read(), which invokes > the buffered file reading code and splices from the pagecache into the > pipe; direct_splice_read(), which bulk-allocates a buffer, reads into it > and then pushes the filled pages into the pipe; or handle it in > filesystem-specific code. If there's a clearly separate first and second half of a 32 patch series, it might really make sense to just split it instead of exceeding every normal attention window..