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]

 



On Sat, Feb 01, 2020 at 05:24:25PM +0800, Chengguang Xu wrote:
>  ---- 在 星期六, 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.
>  > 
>  
> 
> Hi Greg, Sasha
> 
> Now the fix patch has been in Linus's tree, you can add below three patches together to  backport list.
> 
> 
> commit 909110c060f22e6 "f2fs: choose hardlimit when softlimit is larger than hardlimit in f2fs_statfs_project()"
> commit acdf2172172a511 "f2fs: fix miscounted block limit in f2fs_statfs_project()"
> commit bf2cbd3c57159c2 "f2fs: code cleanup for f2fs_statfs_project()"

All now queued up, thanks for letting us know.

greg k-h



[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