On Fri, Mar 07, 2025 at 11:25:00PM +0100, Rasmus Villemoes wrote: > As 'head' is not updated after head+1 is assigned to pipe->head, the > condition being tested here is exactly the same as in the big if > statement just above. Merge the two bodies. > > Signed-off-by: Rasmus Villemoes <linux@xxxxxxxxxxxxxxxxxx> > --- > fs/pipe.c | 4 +--- > 1 file changed, 1 insertion(+), 3 deletions(-) > > diff --git a/fs/pipe.c b/fs/pipe.c > index 097400cce241..27385e3e5417 100644 > --- a/fs/pipe.c > +++ b/fs/pipe.c > @@ -547,10 +547,8 @@ pipe_write(struct kiocb *iocb, struct iov_iter *from) > > if (!iov_iter_count(from)) > break; > - } > - > - if (!pipe_full(head, pipe->tail, pipe->max_usage)) > continue; > + } > > /* Wait for buffer space to become available. */ > if ((filp->f_flags & O_NONBLOCK) || I already posted this :) It is hanging out in the vfs trees (and -next), see https://lore.kernel.org/linux-fsdevel/20250303230409.452687-2-mjguzik@xxxxxxxxx/