Re: [PATCH 4.19 062/114] f2fs: choose hardlimit when softlimit is larger than hardlimit in f2fs_statfs_project()

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



 ---- 在 星期六, 2020-01-04 19:53:08 Greg Kroah-Hartman <gregkh@xxxxxxxxxxxxxxxxxxx> 撰写 ----
 > On Sat, Jan 04, 2020 at 09:50:43AM +0800, Chengguang Xu wrote:
 > >  ---- 在 星期六, 2020-01-04 01:12:13 Pavel Machek <pavel@xxxxxxx> 撰写 ----
 > >  > Hi!
 > >  > 
 > >  > > From: Chengguang Xu <cgxu519@xxxxxxxxxxxx>
 > >  > > 
 > >  > > [ 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@xxxxxxxxxxxx>
 > >  > > Reviewed-by: Chao Yu <yuchao0@xxxxxxxxxx>
 > >  > > Signed-off-by: Jaegeuk Kim <jaegeuk@xxxxxxxxxx>
 > >  > > Signed-off-by: Sasha Levin <sashal@xxxxxxxxxx>
 > >  > > ---
 > >  > >  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!






[Index of Archives]     [Linux Kernel]     [Kernel Development Newbies]     [Linux USB Devel]     [Video for Linux]     [Linux Audio Users]     [Yosemite Hiking]     [Linux Kernel]     [Linux SCSI]

  Powered by Linux