diff mbox

[1/5] blk-throttle: Move three assignments for the variable "ret" in tg_set_max()

Message ID 75495d45-cfc4-9740-39e4-bd4c3e71232b@users.sourceforge.net (mailing list archive)
State New, archived
Headers show

Commit Message

SF Markus Elfring Jan. 22, 2017, 8:31 a.m. UTC
From: Markus Elfring <elfring@users.sourceforge.net>
Date: Sat, 21 Jan 2017 21:23:06 +0100

A local variable was set to an error code before a concrete error situation
was detected. Thus move the corresponding assignments into if branches
to indicate a software failure there.

Signed-off-by: Markus Elfring <elfring@users.sourceforge.net>
---
 block/blk-throttle.c | 23 +++++++++++++----------
 1 file changed, 13 insertions(+), 10 deletions(-)

Comments

Johannes Thumshirn Jan. 23, 2017, 9:15 a.m. UTC | #1
On Sun, Jan 22, 2017 at 09:31:29AM +0100, SF Markus Elfring wrote:
> From: Markus Elfring <elfring@users.sourceforge.net>
> Date: Sat, 21 Jan 2017 21:23:06 +0100
> 
> A local variable was set to an error code before a concrete error situation
> was detected. Thus move the corresponding assignments into if branches
> to indicate a software failure there.
> 
> Signed-off-by: Markus Elfring <elfring@users.sourceforge.net>
> ---
>  block/blk-throttle.c | 23 +++++++++++++----------
>  1 file changed, 13 insertions(+), 10 deletions(-)
> 
> diff --git a/block/blk-throttle.c b/block/blk-throttle.c
> index 6f4c96e5f86b..51d112deb02e 100644
> --- a/block/blk-throttle.c
> +++ b/block/blk-throttle.c
> @@ -1327,27 +1327,30 @@ static ssize_t tg_set_max(struct kernfs_open_file *of,
>  			break;
>  		ctx.body += len;
>  
> -		ret = -EINVAL;
>  		p = tok;
>  		strsep(&p, "=");
> -		if (!p || (sscanf(p, "%llu", &val) != 1 && strcmp(p, "max")))
> +		if (!p || (sscanf(p, "%llu", &val) != 1 && strcmp(p, "max"))) {
> +			ret = -EINVAL;
>  			goto out_finish;
> +		}

Sorry, I don't like this patch. We know the next error if we encounter one
will be EINVAL until we change it. Your patch doesn't introduce a functual
change and doesn't improve readability, so I don't really see a point for it.

Byte,
	Johannes
SF Markus Elfring Jan. 23, 2017, 10 a.m. UTC | #2
>> @@ -1327,27 +1327,30 @@ static ssize_t tg_set_max(struct kernfs_open_file *of,
>>  			break;
>>  		ctx.body += len;
>>  
>> -		ret = -EINVAL;
>>  		p = tok;
>>  		strsep(&p, "=");
>> -		if (!p || (sscanf(p, "%llu", &val) != 1 && strcmp(p, "max")))
>> +		if (!p || (sscanf(p, "%llu", &val) != 1 && strcmp(p, "max"))) {
>> +			ret = -EINVAL;
>>  			goto out_finish;
>> +		}
> 
> Sorry, I don't like this patch. We know the next error if we encounter one
> will be EINVAL until we change it.

Thanks for your constructive feedback.


> Your patch doesn't introduce a functual change and doesn't improve readability,
> so I don't really see a point for it.

We have got different preferences for the placement of error code settings.
Do you care about run time changes there?

Regards,
Markus
--
To unsubscribe from this list: send the line "unsubscribe linux-block" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Johannes Thumshirn Jan. 23, 2017, 11:47 a.m. UTC | #3
On Mon, Jan 23, 2017 at 11:00:15AM +0100, SF Markus Elfring wrote:
> >> @@ -1327,27 +1327,30 @@ static ssize_t tg_set_max(struct kernfs_open_file *of,
> >>  			break;
> >>  		ctx.body += len;
> >>  
> >> -		ret = -EINVAL;
> >>  		p = tok;
> >>  		strsep(&p, "=");
> >> -		if (!p || (sscanf(p, "%llu", &val) != 1 && strcmp(p, "max")))
> >> +		if (!p || (sscanf(p, "%llu", &val) != 1 && strcmp(p, "max"))) {
> >> +			ret = -EINVAL;
> >>  			goto out_finish;
> >> +		}
> > 
> > Sorry, I don't like this patch. We know the next error if we encounter one
> > will be EINVAL until we change it.
> 
> Thanks for your constructive feedback.
> 
> 
> > Your patch doesn't introduce a functual change and doesn't improve readability,
> > so I don't really see a point for it.
> 
> We have got different preferences for the placement of error code settings.
Yes we do, so what's the point? Both are OK. Please don't go down that road it
opens so much potential for needless bikeshedding and waste all of our
(including your) time.

Thanks,
	Johannes
SF Markus Elfring Jan. 23, 2017, 12:06 p.m. UTC | #4
>> We have got different preferences for the placement of error code settings.
> Yes we do, so what's the point? Both are OK.

Can a function implementation be executed a bit faster in the case
that error codes will usually only matter if they would be set after
a concrete software failure


> Please don't go down that road it opens so much potential for needless bikeshedding
> and waste all of our (including your) time.

I would appreciate to clarify involved run time consequences a bit more.

Regards,
Markus
--
To unsubscribe from this list: send the line "unsubscribe linux-block" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Jens Axboe Jan. 23, 2017, 3:17 p.m. UTC | #5
On 01/23/2017 05:06 AM, SF Markus Elfring wrote:
>>> We have got different preferences for the placement of error code settings.
>> Yes we do, so what's the point? Both are OK.
> 
> Can a function implementation be executed a bit faster in the case
> that error codes will usually only matter if they would be set after
> a concrete software failure

Don't turn this into a troll fest. Maintainability trumps performance.
Every time. See previous email for reasoning for that.

>> Please don't go down that road it opens so much potential for needless bikeshedding
>> and waste all of our (including your) time.
> 
> I would appreciate to clarify involved run time consequences a bit more.

How about you go and benchmark the before and after, and present some
compelling evidence based on those tests for why the change should be
made? The onus is on the submitter here, not the reviewer.

As I said in the previous email, don't bother sending these types of
patches for the block layer again. They are just going to be ignored.
diff mbox

Patch

diff --git a/block/blk-throttle.c b/block/blk-throttle.c
index 6f4c96e5f86b..51d112deb02e 100644
--- a/block/blk-throttle.c
+++ b/block/blk-throttle.c
@@ -1327,27 +1327,30 @@  static ssize_t tg_set_max(struct kernfs_open_file *of,
 			break;
 		ctx.body += len;
 
-		ret = -EINVAL;
 		p = tok;
 		strsep(&p, "=");
-		if (!p || (sscanf(p, "%llu", &val) != 1 && strcmp(p, "max")))
+		if (!p || (sscanf(p, "%llu", &val) != 1 && strcmp(p, "max"))) {
+			ret = -EINVAL;
 			goto out_finish;
+		}
 
-		ret = -ERANGE;
-		if (!val)
+		if (!val) {
+			ret = -ERANGE;
 			goto out_finish;
+		}
 
-		ret = -EINVAL;
-		if (!strcmp(tok, "rbps"))
+		if (!strcmp(tok, "rbps")) {
 			v[0] = val;
-		else if (!strcmp(tok, "wbps"))
+		} else if (!strcmp(tok, "wbps")) {
 			v[1] = val;
-		else if (!strcmp(tok, "riops"))
+		} else if (!strcmp(tok, "riops")) {
 			v[2] = min_t(u64, val, UINT_MAX);
-		else if (!strcmp(tok, "wiops"))
+		} else if (!strcmp(tok, "wiops")) {
 			v[3] = min_t(u64, val, UINT_MAX);
-		else
+		} else {
+			ret = -EINVAL;
 			goto out_finish;
+		}
 	}
 
 	tg->bps[READ] = v[0];