On 2/10/23 3:17?PM, Linus Torvalds wrote: > On Fri, Feb 10, 2023 at 2:08 PM Linus Torvalds > <torvalds@xxxxxxxxxxxxxxxxxxxx> wrote: >> >> (a) the first one is to protect from endless loops > > Just to clarify: they're not "endless loops" per se, but we have > splice sources and destinations that always succeed, like /dev/zero > and /dev/null. > > So things like "sendfile()" that are happy to just repeat until done > do need to have some kind of signal handling even for the case when > we're not actually waiting for data. That's what that whole > > /* > * Check for signal early to make process killable when there are > * always buffers available > */ > > this is all about. See commit c725bfce7968 ("vfs: Make sendfile(2) > killable even better") for a less obvious example than that > "zero->null" kind of thing. > > (I actually suspect that /dev/zero no longer works as a splice source, > since we disabled the whole "fall back to regular IO" that Christoph > did in 36e2c7421f02 "fs: don't allow splice read/write without > explicit ops"). Yet another one... Since it has a read_iter, should be fixable with just adding the generic splice_read. -- Jens Axboe