[PATCH] elevator: avoid redundant conditions

Liao Yuanhong posted 1 patch 4 weeks, 1 day ago
block/elevator.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
[PATCH] elevator: avoid redundant conditions
Posted by Liao Yuanhong 4 weeks, 1 day ago
While 'if (i < 0) ... else if (i >= 0) ...' is technically equivalent to
'if (i < 0) ... else ...', the latter is vastly easier to read because
it avoids writing out a condition that is unnecessary. Let's drop such
unnecessary conditions.

Signed-off-by: Liao Yuanhong <liaoyuanhong@vivo.com>
---
 block/elevator.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/block/elevator.c b/block/elevator.c
index fe96c6f4753c..3828c35f5753 100644
--- a/block/elevator.c
+++ b/block/elevator.c
@@ -240,7 +240,7 @@ void elv_rb_add(struct rb_root *root, struct request *rq)
 
 		if (blk_rq_pos(rq) < blk_rq_pos(__rq))
 			p = &(*p)->rb_left;
-		else if (blk_rq_pos(rq) >= blk_rq_pos(__rq))
+		else
 			p = &(*p)->rb_right;
 	}
 
-- 
2.34.1
Re: [PATCH] elevator: avoid redundant conditions
Posted by Markus Elfring 4 weeks, 1 day ago
…
> it avoids writing out a condition that is unnecessary. Let's drop such

                                                         Thus?


> unnecessary conditions.

  an unnecessary condition?


Would a summary phrase like “Avoid redundant condition in elv_rb_add()”
be nicer?


…
> +++ b/block/elevator.c
> @@ -240,7 +240,7 @@ void elv_rb_add(struct rb_root *root, struct request *rq)
>  
>  		if (blk_rq_pos(rq) < blk_rq_pos(__rq))
>  			p = &(*p)->rb_left;
> -		else if (blk_rq_pos(rq) >= blk_rq_pos(__rq))
> +		else
>  			p = &(*p)->rb_right;


Would you dare to apply a conditional expression here?

		p = (blk_rq_pos(rq) < blk_rq_pos(__rq)) ? &(*p)->rb_left : &(*p)->rb_right;


Regards,
Markus
Re: [PATCH] elevator: avoid redundant conditions
Posted by Damien Le Moal 4 weeks, 1 day ago
On 9/4/25 3:05 PM, Markus Elfring wrote:
> …
>> it avoids writing out a condition that is unnecessary. Let's drop such
> 
>                                                          Thus?
> 
> 
>> unnecessary conditions.
> 
>   an unnecessary condition?
> 
> 
> Would a summary phrase like “Avoid redundant condition in elv_rb_add()”
> be nicer?
> 
> 
> …
>> +++ b/block/elevator.c
>> @@ -240,7 +240,7 @@ void elv_rb_add(struct rb_root *root, struct request *rq)
>>  
>>  		if (blk_rq_pos(rq) < blk_rq_pos(__rq))
>>  			p = &(*p)->rb_left;
>> -		else if (blk_rq_pos(rq) >= blk_rq_pos(__rq))
>> +		else
>>  			p = &(*p)->rb_right;
> 
> 
> Would you dare to apply a conditional expression here?
> 
> 		p = (blk_rq_pos(rq) < blk_rq_pos(__rq)) ? &(*p)->rb_left : &(*p)->rb_right;

This is far less readable.

> 
> 
> Regards,
> Markus


-- 
Damien Le Moal
Western Digital Research
Re: [PATCH] elevator: avoid redundant conditions
Posted by Damien Le Moal 4 weeks, 1 day ago
On 9/3/25 9:14 PM, Liao Yuanhong wrote:
> While 'if (i < 0) ... else if (i >= 0) ...' is technically equivalent to
> 'if (i < 0) ... else ...', the latter is vastly easier to read because
> it avoids writing out a condition that is unnecessary. Let's drop such
> unnecessary conditions.
> 
> Signed-off-by: Liao Yuanhong <liaoyuanhong@vivo.com>

Reviewed-by: Damien Le Moal <dlemoal@kernel.org>

-- 
Damien Le Moal
Western Digital Research