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) || -- 2.48.1