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