From: Dave Chinner <david@fromorbit.com>
To: xiakaixu1987@gmail.com
Cc: linux-xfs@vger.kernel.org, darrick.wong@oracle.com,
Kaixu Xia <kaixuxia@tencent.com>
Subject: Re: [PATCH] xfs: use more suitable method to get the quota limit value
Date: Wed, 18 Mar 2020 09:45:39 +1100 [thread overview]
Message-ID: <20200317224539.GT10776@dread.disaster.area> (raw)
In-Reply-To: <1584439170-20993-1-git-send-email-kaixuxia@tencent.com>
On Tue, Mar 17, 2020 at 05:59:30PM +0800, xiakaixu1987@gmail.com wrote:
> From: Kaixu Xia <kaixuxia@tencent.com>
>
> It is more suitable to use min_not_zero() to get the quota limit
> value, means to choose the minimum value not the softlimit firstly.
> And the meaning is more clear even though the hardlimit value must
> be larger than softlimit value.
>
> Signed-off-by: Kaixu Xia <kaixuxia@tencent.com>
> ---
> fs/xfs/xfs_qm_bhv.c | 10 ++++------
> 1 file changed, 4 insertions(+), 6 deletions(-)
>
> diff --git a/fs/xfs/xfs_qm_bhv.c b/fs/xfs/xfs_qm_bhv.c
> index fc2fa41..f1711f5 100644
> --- a/fs/xfs/xfs_qm_bhv.c
> +++ b/fs/xfs/xfs_qm_bhv.c
> @@ -23,9 +23,8 @@
> {
> uint64_t limit;
>
> - limit = dqp->q_core.d_blk_softlimit ?
> - be64_to_cpu(dqp->q_core.d_blk_softlimit) :
> - be64_to_cpu(dqp->q_core.d_blk_hardlimit);
> + limit = min_not_zero(be64_to_cpu(dqp->q_core.d_blk_softlimit),
> + be64_to_cpu(dqp->q_core.d_blk_hardlimit));
> if (limit && statp->f_blocks > limit) {
> statp->f_blocks = limit;
> statp->f_bfree = statp->f_bavail =
> @@ -33,9 +32,8 @@
> (statp->f_blocks - dqp->q_res_bcount) : 0;
> }
>
> - limit = dqp->q_core.d_ino_softlimit ?
> - be64_to_cpu(dqp->q_core.d_ino_softlimit) :
> - be64_to_cpu(dqp->q_core.d_ino_hardlimit);
> + limit = min_not_zero(be64_to_cpu(dqp->q_core.d_ino_softlimit),
> + be64_to_cpu(dqp->q_core.d_ino_hardlimit));
Which variable is "not zero"? The first, the second, or both?
Oh, it's both, so this is actually a change of logic:
if (softlimit == 0)
limit = hardlimit;
else if (hardlimit == 0)
limit = softlimit;
else
limit = min(softlimit, hardlimit);
So now if both soft and hard limit are set, the hard limit overrides
the soft limit, even when only the soft limit should apply (e.g.
during the grace period).
Hence this ends up being a user visible change in behaviour. And,
IMO, this doesn't make the code better or clearer as now I have go
find the definition of min_not_zero() to understand what the soft
limit vs hard limit quota policy logic is. That's not an improvement.
Cheers,
Dave.
--
Dave Chinner
david@fromorbit.com
prev parent reply other threads:[~2020-03-17 22:45 UTC|newest]
Thread overview: 5+ messages / expand[flat|nested] mbox.gz Atom feed top
2020-03-17 9:59 [PATCH] xfs: use more suitable method to get the quota limit value xiakaixu1987
2020-03-17 14:34 ` Eric Sandeen
2020-03-17 14:53 ` Bill O'Donnell
2020-03-17 18:58 ` Christoph Hellwig
2020-03-17 22:45 ` Dave Chinner [this message]
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=20200317224539.GT10776@dread.disaster.area \
--to=david@fromorbit.com \
--cc=darrick.wong@oracle.com \
--cc=kaixuxia@tencent.com \
--cc=linux-xfs@vger.kernel.org \
--cc=xiakaixu1987@gmail.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 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).