[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <16f70edfb11.12deacc7a49186.2118741807946874161@mykernel.net>
Date: Sat, 04 Jan 2020 22:20:42 +0800
From: Chengguang Xu <cgxu519@...ernel.net>
To: "Greg Kroah-Hartman" <gregkh@...uxfoundation.org>
Cc: "Pavel Machek" <pavel@...x.de>,
"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 19:53:08 Greg Kroah-Hartman <gregkh@...uxfoundation.org> 撰写 ----
> On Sat, Jan 04, 2020 at 09:50:43AM +0800, Chengguang Xu wrote:
> > ---- 在 星期六, 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.
>
> This patch is already in Linus's tree, so you can't send a "revised"
> version, only one that applies on top of this one :)
>
> That being said, I'll go drop this from the stable queues, thanks.
> Please let us know when the fixed patch is in Linus's tree and we will
> be glad to take both of them.
I got it, Thanks Greg!
Powered by blists - more mailing lists