All of lore.kernel.org
 help / color / mirror / Atom feed
From: Miao Xie <miaox@cn.fujitsu.com>
To: Ilya Dryomov <idryomov@gmail.com>
Cc: Linux Btrfs <linux-btrfs@vger.kernel.org>
Subject: Re: [PATCH V4 1/2] Btrfs: cleanup duplicated division functions
Date: Fri, 28 Sep 2012 09:30:23 +0800	[thread overview]
Message-ID: <5064FDAF.5010303@cn.fujitsu.com> (raw)
In-Reply-To: <20120927165624.GA2024@zambezi.lan>

On thu, 27 Sep 2012 19:56:24 +0300, Ilya Dryomov wrote:
>> the parameters are right. So besides the code cleanup, this patch also
>> add a check for the usage of the space balance, it is the only place that
>> we need add check to make sure the parameters of div_factor are right till
>> now. Besides that, the old kernel may hold the wrong usage value, so we
>> must rectify it.
> 
> Cleaning up/unifying duplicated functions and changing the existing
> logic are two very different things.  If you, in the course of writing
> this patch, became unhappy with the way balancing ioctl deals with
> "invalid" input, please send a separate patch.
> 
> Before your patch, volumes.c had its own copy of div_factor_fine():
> 
> static u64 div_factor_fine(u64 num, int factor)
> {
> 	if (factor <= 0)
> 		return 0;
> 	if (factor >= 100)
> 		return num;
> 
> 	num *= factor;
> 	do_div(num, 100);
> 	return num;
> }
> 
> which was called from chunk_usage_filter() on unvalidated user input.
> As far as the cleanup part of your patch goes, you've dropped
> factor <= 0 / factor >= 100 logic, merged volumes.c's copy with
> extent-tree.c's copy and renamed div_factor_fine() to div_factor().  To
> make chunk_usage_filter() happy again, it's enough to move the dropped
> logic directly to the call site:
> 
> static int chunk_usage_filter(struct btrfs_fs_info *fs_info, u64 chunk_offset,
> 			      struct btrfs_balance_args *bargs)
> {
> 	...
> 
> -	user_thresh = div_factor_fine(cache->key.offset, bargs->usage);
> +	if (bargs->usage == 0)
> +		user_thresh = 0;
> +	else if (bargs->usage >= 100)
> +		user_thresh = cache->key.offset;
> +	else
> +		user_thresh = div_factor(cache->key.offset, bargs->usage);
> 
> 	...
> }
> 
> So I would suggest you drop all hunks related to changing the way
> balancing ioctl works and make the above change to chunk_usage_filter()
> instead.  Once again, if you are unhappy with usage filter argument
> handling, send a separate patch.

Fine.
(I forget the rule that one patch just do one thing)

Thanks
Miao

  reply	other threads:[~2012-09-28  2:00 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
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 [this message]
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=5064FDAF.5010303@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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.