Message ID | 20250307222500.1117662-1-linux@rasmusvillemoes.dk (mailing list archive) |
---|---|
State | New |
Headers | show |
Series | fs/pipe.c: merge if statements with identical conditions | expand |
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@rasmusvillemoes.dk> > --- > 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@gmail.com/
On Fri, Mar 07 2025, Mateusz Guzik <mjguzik@gmail.com> wrote: > 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@rasmusvillemoes.dk> >> --- >> 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 :) > Ah, never mind then, also for that other patch I just sent. Just stumbled on those while trying to proof-read the pipe code. Rasmus
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@gmail.com/ Oleg. > Signed-off-by: Rasmus Villemoes <linux@rasmusvillemoes.dk> > --- > 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 >
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) ||
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@rasmusvillemoes.dk> --- fs/pipe.c | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-)