Re: [PATCH] fs/pipe.c: merge if statements with identical conditions

From: Oleg Nesterov
Date: Fri Mar 07 2025 - 17:55:00 EST


On 03/07, 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.

Yes.

But Mateusz has already sent the same patch, please see

[PATCH 1/3] pipe: drop an always true check in anon_pipe_write()
https://lore.kernel.org/all/20250303230409.452687-2-mjguzik@xxxxxxxxx/

Oleg.

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