Messages in this thread | | | Date | Wed, 30 Nov 2022 10:31:27 -1000 | From | Tejun Heo <> | Subject | Re: [PATCH -next v2 1/9] blk-iocost: cleanup ioc_qos_write() and ioc_cost_model_write() |
| |
On Wed, Nov 30, 2022 at 09:21:48PM +0800, Li Nan wrote: > @@ -3197,6 +3197,7 @@ static ssize_t ioc_qos_write(struct kernfs_open_file *of, char *input, > enable = ioc->enabled; > user = ioc->user_qos_params; > > + ret = -EINVAL; > while ((p = strsep(&input, " \t\n"))) { > substring_t args[MAX_OPT_ARGS]; > char buf[32]; > @@ -3218,7 +3219,7 @@ static ssize_t ioc_qos_write(struct kernfs_open_file *of, char *input, > else if (!strcmp(buf, "user")) > user = true; > else > - goto einval; > + goto out_unlock;
So, I kinda dislike it. That's a lot of code to cover with one "ret = -EINVAL" assignment which makes it pretty easy to make a mistake. People use variables like i, ret, err without thinking much and it doesn't help that you now can't tell whether a given exit condition is error or not by just looking at it.
I don't know what great extra insight the return value from match_u64() would carry (like, what else is it gonna say? and even if it does why does that matter when we say -EINVAL to pretty much everything else) so I'm not sure this matters but if you really want it just add a separate error return label?
Thanks.
-- tejun
| |