[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <16f6e3f5bbe.d291a05d38838.5222280714928609391@mykernel.net>
Date: Sat, 04 Jan 2020 09:50:43 +0800
From: Chengguang Xu <cgxu519@...ernel.net>
To: "Pavel Machek" <pavel@...x.de>
Cc: "Greg Kroah-Hartman" <gregkh@...uxfoundation.org>,
"linux-kernel" <linux-kernel@...r.kernel.org>,
"stable" <stable@...r.kernel.org>, "Chao Yu" <yuchao0@...wei.com>,
"Jaegeuk Kim" <jaegeuk@...nel.org>,
"Sasha Levin" <sashal@...nel.org>
Subject: Re: [PATCH 4.19 062/114] f2fs: choose hardlimit when softlimit is
larger than hardlimit in f2fs_statfs_project()
---- 在 星期六, 2020-01-04 01:12:13 Pavel Machek <pavel@...x.de> 撰写 ----
> Hi!
>
> > From: Chengguang Xu <cgxu519@...ernel.net>
> >
> > [ Upstream commit 909110c060f22e65756659ec6fa957ae75777e00 ]
> >
> > Setting softlimit larger than hardlimit seems meaningless
> > for disk quota but currently it is allowed. In this case,
> > there may be a bit of comfusion for users when they run
> > df comamnd to directory which has project quota.
> >
> > For example, we set 20M softlimit and 10M hardlimit of
> > block usage limit for project quota of test_dir(project id 123).
>
> > Signed-off-by: Chengguang Xu <cgxu519@...ernel.net>
> > Reviewed-by: Chao Yu <yuchao0@...wei.com>
> > Signed-off-by: Jaegeuk Kim <jaegeuk@...nel.org>
> > Signed-off-by: Sasha Levin <sashal@...nel.org>
> > ---
> > fs/f2fs/super.c | 20 ++++++++++++++------
> > 1 file changed, 14 insertions(+), 6 deletions(-)
> >
> > diff --git a/fs/f2fs/super.c b/fs/f2fs/super.c
> > index 7a9cc64f5ca3..662c7de58b99 100644
> > --- a/fs/f2fs/super.c
> > +++ b/fs/f2fs/super.c
> > @@ -1148,9 +1148,13 @@ static int f2fs_statfs_project(struct super_block *sb,
> > return PTR_ERR(dquot);
> > spin_lock(&dquot->dq_dqb_lock);
> >
> > - limit = (dquot->dq_dqb.dqb_bsoftlimit ?
> > - dquot->dq_dqb.dqb_bsoftlimit :
> > - dquot->dq_dqb.dqb_bhardlimit) >> sb->s_blocksize_bits;
> > + limit = 0;
> > + if (dquot->dq_dqb.dqb_bsoftlimit)
> > + limit = dquot->dq_dqb.dqb_bsoftlimit;
> > + if (dquot->dq_dqb.dqb_bhardlimit &&
> > + (!limit || dquot->dq_dqb.dqb_bhardlimit < limit))
> > + limit = dquot->dq_dqb.dqb_bhardlimit;
> > +
> > if (limit && buf->f_blocks > limit) {
>
> >> blocksize disappeared here. That can't be right.
>
> Plus, is this just obfuscated way of saying
>
> limit = min_not_zero(dquot->dq_dqb.dqb_bsoftlimit, dquot->dq_dqb.dqb_bhardlimit)?
>
Please skip this patch from stable list, I'll send a revised patch to upstream.
Thanks.
Powered by blists - more mailing lists