From: Tsutomu Itoh <t-itoh@jp.fujitsu.com>
To: Dongsheng Yang <yangds.fnst@cn.fujitsu.com>
Cc: linux-btrfs@vger.kernel.org
Subject: Re: [PATCH 2/2] btrfs-progs: qgroup: allow user to clear some limitation on qgroup.
Date: Wed, 03 Jun 2015 17:40:28 +0900 [thread overview]
Message-ID: <556EBD7C.8000603@jp.fujitsu.com> (raw)
In-Reply-To: <1433314653-548-3-git-send-email-yangds.fnst@cn.fujitsu.com>
On 2015/06/03 15:57, Dongsheng Yang wrote:
> Currently, we can not clear a limitation on a qgroup. Although
> there is a 'none' choice provided to user to do it, it does not
> work well.
>
> It does not set the flag which user want to clear, then kernel
> will never know what the user want to do at all.
>
> *Without this commit*
> # ./btrfs qgroup show -re /mnt
> qgroupid rfer excl max_rfer max_excl
> -------- ---- ---- -------- --------
> 0/5 2.19GiB 2.19GiB 5.00GiB none
> 0/257 100.02MiB 100.02MiB none none
> # ./btrfs qgroup limit none /mnt
> # ./btrfs qgroup show -re /mnt
> qgroupid rfer excl max_rfer max_excl
> -------- ---- ---- -------- --------
> 0/5 2.19GiB 2.19GiB 5.00GiB none
> 0/257 100.02MiB 100.02MiB none none
>
> This patch will set the flag user want to clear and pass a
> size=-1 to kernel. Then kernel will clear it correctly.
>
> *With this commit*
> # ./btrfs qgroup show -re /mnt
> qgroupid rfer excl max_rfer max_excl
> -------- ---- ---- -------- --------
> 0/5 2.19GiB 2.19GiB 5.00GiB none
> 0/257 100.02MiB 100.02MiB none none
> # ./btrfs qgroup limit none /mnt
> # ./btrfs qgroup show -re /mnt
> qgroupid rfer excl max_rfer max_excl
> -------- ---- ---- -------- --------
> 0/5 2.19GiB 2.19GiB none none
> 0/257 100.02MiB 100.02MiB none none
>
> Reported-by: Tsutomu Itoh <t-itoh@jp.fujitsu.com>
> Signed-off-by: Dongsheng Yang <yangds.fnst@cn.fujitsu.com>
> ---
> cmds-qgroup.c | 23 +++++++++++------------
> 1 file changed, 11 insertions(+), 12 deletions(-)
>
> diff --git a/cmds-qgroup.c b/cmds-qgroup.c
> index b073250..00cc089 100644
> --- a/cmds-qgroup.c
> +++ b/cmds-qgroup.c
> @@ -110,9 +110,10 @@ static int parse_limit(const char *p, unsigned long long *s)
> {
> char *endptr;
> unsigned long long size;
> + unsigned long long CLEAR_VALUE = -1;
Even if a negative value is specified, it doesn't become an error...
So, it doesn't make an error of the following command.
# btrfs qg lim -- -1 sub1
# btrfs qg show -prce /test1
qgroupid rfer excl max_rfer max_excl parent child
-------- ---- ---- -------- -------- ------ -----
0/5 16.00KiB 16.00KiB none none --- ---
0/259 8.86GiB 7.88GiB none none --- ---
# btrfs qg lim -- -2 sub1
# btrfs qg show -prce /test1
qgroupid rfer excl max_rfer max_excl parent child
-------- ---- ---- -------- -------- ------ -----
0/5 16.00KiB 16.00KiB none none --- ---
0/259 8.86GiB 7.88GiB 16.00EiB none --- ---
Otherwise OK,
Tested-by: Tsutomu Itoh <t-itoh@jp.fujitsu.com>
>
> if (strcasecmp(p, "none") == 0) {
> - *s = 0;
> + *s = CLEAR_VALUE;
> return 1;
> }
> size = strtoull(p, &endptr, 10);
> @@ -406,17 +407,15 @@ static int cmd_qgroup_limit(int argc, char **argv)
> }
>
> memset(&args, 0, sizeof(args));
> - if (size) {
> - if (compressed)
> - args.lim.flags |= BTRFS_QGROUP_LIMIT_RFER_CMPR |
> - BTRFS_QGROUP_LIMIT_EXCL_CMPR;
> - if (exclusive) {
> - args.lim.flags |= BTRFS_QGROUP_LIMIT_MAX_EXCL;
> - args.lim.max_exclusive = size;
> - } else {
> - args.lim.flags |= BTRFS_QGROUP_LIMIT_MAX_RFER;
> - args.lim.max_referenced = size;
> - }
> + if (compressed)
> + args.lim.flags |= BTRFS_QGROUP_LIMIT_RFER_CMPR |
> + BTRFS_QGROUP_LIMIT_EXCL_CMPR;
> + if (exclusive) {
> + args.lim.flags |= BTRFS_QGROUP_LIMIT_MAX_EXCL;
> + args.lim.max_exclusive = size;
> + } else {
> + args.lim.flags |= BTRFS_QGROUP_LIMIT_MAX_RFER;
> + args.lim.max_referenced = size;
> }
>
> if (argc - optind == 2) {
>
next prev parent reply other threads:[~2015-06-03 8:40 UTC|newest]
Thread overview: 9+ messages / expand[flat|nested] mbox.gz Atom feed top
2015-06-03 6:57 [PATCH 1/2] btrfs-progs: qgroup: show 'none' when we did not limit it on this qgroup Dongsheng Yang
2015-06-03 6:57 ` [PATCH] btrfs: qgroup: allow user to clear the limitation on qgroup Dongsheng Yang
2015-06-03 8:18 ` Tsutomu Itoh
2015-06-03 6:57 ` [PATCH 2/2] btrfs-progs: qgroup: allow user to clear some " Dongsheng Yang
2015-06-03 8:40 ` Tsutomu Itoh [this message]
2015-06-03 8:41 ` Dongsheng Yang
2015-06-05 16:37 ` David Sterba
2015-06-03 8:14 ` [PATCH 1/2] btrfs-progs: qgroup: show 'none' when we did not limit it on this qgroup Tsutomu Itoh
2015-06-05 16:36 ` 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=556EBD7C.8000603@jp.fujitsu.com \
--to=t-itoh@jp.fujitsu.com \
--cc=linux-btrfs@vger.kernel.org \
--cc=yangds.fnst@cn.fujitsu.com \
/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.