[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <Y4e9n89vJ45+9WD2@slm.duckdns.org>
Date: Wed, 30 Nov 2022 10:31:27 -1000
From: Tejun Heo <tj@...nel.org>
To: Li Nan <linan122@...wei.com>
Cc: josef@...icpanda.com, axboe@...nel.dk, cgroups@...r.kernel.org,
linux-block@...r.kernel.org, linux-kernel@...r.kernel.org,
yukuai3@...wei.com, yi.zhang@...wei.com
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
Powered by blists - more mailing lists