From: Miao Xie <miaox@cn.fujitsu.com>
To: Ilya Dryomov <idryomov@gmail.com>
Cc: Linux Btrfs <linux-btrfs@vger.kernel.org>
Subject: Re: [PATCH V3 1/2] Btrfs: cleanup duplicated division functions
Date: Tue, 25 Sep 2012 18:24:18 +0800 [thread overview]
Message-ID: <50618652.2040903@cn.fujitsu.com> (raw)
In-Reply-To: <20120924184241.GB3098@zambezi.lan>
On mon, 24 Sep 2012 21:42:42 +0300, Ilya Dryomov wrote:
> On Mon, Sep 24, 2012 at 06:47:42PM +0200, David Sterba wrote:
>> On Mon, Sep 24, 2012 at 10:05:02AM +0800, Miao Xie wrote:
>>> Generally, we should check the value when it is input. If not, we might
>>> run our program with the wrong value, and it is possible to cause unknown
>>> problems. So I think the above chunk is necessary.
>>
>> The difference is that giving an invalid value will exit early (your
>> version), while Ilya's version will clamp the 'usage' to the allowed
>> range during processing. From usability POV, I'd prefer to let the
>> command fail early with a verbose error eg. that the range is invalid.
>
> I think that's the job for progs, and that's where this and a few other
> checks are currently implemented.
>
> There is no possibility for "unknown problems", that's exactly how it's
> been implemented before the cleanup. The purpose of balance filters
> (and the usage filter in particular) is to lower the number of chunks we
> have to relocate. If someone decides to use raw ioctls, and supplies us
> with the invalid value, we just cut it down to a 100 and proceed.
> usage=100 is the equivalent of not using the usage filter at all, so the
> raw ioctl user will get what he deserves.
>
> This is very similar to what we currently do with other filters. For
> example, "soft" can only be used with "convert", and this is checked by
> progs. But, if somebody were to set a "soft" flag without setting
> "convert" we would simply ignore that "soft". Same goes for "drange"
> and "devid", invalid ranges, invalid devids, etc. Pulling all these
> checks into the kernel is questionable at best, and, if enough people
> insist on it, should be discussed separately.
I think the usage is a special case that doesn't cause critical problem and
are not used everywhere. But if there is a variant which is referenced at
several places and the kernel would crash if it is invalid, in this case,
we would add the check everywhere and make the code more complex and ugly
if we don't check it when it is passed in. Besides that if we have done
lots of work before the check, we must roll back when we find the variant
is invalid, it wastes time. So I think doing the check and returning the
error number as early as possible is a rule we should follow.
Thanks
Miao
next prev parent reply other threads:[~2012-09-25 10:24 UTC|newest]
Thread overview: 24+ messages / expand[flat|nested] mbox.gz Atom feed top
2012-09-13 10:51 [PATCH 1/2] Btrfs: cleanup duplicated division functions Miao Xie
2012-09-14 13:54 ` David Sterba
2012-09-17 2:21 ` Miao Xie
2012-09-17 12:07 ` Ilya Dryomov
2012-09-17 16:31 ` David Sterba
2012-09-18 3:53 ` Miao Xie
2012-09-20 2:57 ` [PATCH V2 " Miao Xie
2012-09-20 13:28 ` David Sterba
2012-09-21 8:26 ` Miao Xie
2012-09-21 9:07 ` [PATCH V3 " Miao Xie
2012-09-21 15:24 ` David Sterba
2012-09-23 9:54 ` Miao Xie
2012-09-24 16:33 ` David Sterba
2012-09-23 11:49 ` Ilya Dryomov
2012-09-24 2:05 ` Miao Xie
2012-09-24 16:47 ` David Sterba
2012-09-24 18:42 ` Ilya Dryomov
2012-09-25 10:24 ` Miao Xie [this message]
2012-09-27 10:15 ` Miao Xie
2012-09-27 10:19 ` [PATCH V4 " Miao Xie
2012-09-27 16:56 ` Ilya Dryomov
2012-09-28 1:30 ` Miao Xie
2012-09-28 1:49 ` [PATCH V5 " Miao Xie
2012-09-28 10:09 ` David Sterba
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=50618652.2040903@cn.fujitsu.com \
--to=miaox@cn.fujitsu.com \
--cc=idryomov@gmail.com \
--cc=linux-btrfs@vger.kernel.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).