Re: [PATCH v2] ext4: choose hardlimit when softlimit is larger than hardlimit in ext4_statfs_project()

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

 



On Wed 06-11-19 18:40:36, Chengguang Xu wrote:
>  ---- 在 星期三, 2019-11-06 17:49:24 Jan Kara <jack@xxxxxxx> 撰写 ----
>  > On Wed 06-11-19 12:37:35, Chengguang Xu wrote:
>  > >  ---- 在 星期二, 2019-10-15 19:25:23 Jan Kara <jack@xxxxxxx> 撰写 ----
>  > >  > On Tue 15-10-19 18:23:27, Chengguang Xu wrote:
>  > >  > > 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).
>  > >  > > 
>  > >  > > [root@hades mnt_ext4]# repquota -P -a
>  > >  > > *** Report for project quotas on device /dev/loop0
>  > >  > > Block grace time: 7days; Inode grace time: 7days
>  > >  > >                         Block limits                File limits
>  > >  > > Project         used    soft    hard  grace    used  soft  hard  grace
>  > >  > > ----------------------------------------------------------------------
>  > >  > >  0        --      13       0       0              2     0     0
>  > >  > >  123      --   10237   20480   10240              5   200   100
>  > >  > > 
>  > >  > > The result of df command as below:
>  > >  > > 
>  > >  > > [root@hades mnt_ext4]# df -h test_dir
>  > >  > > Filesystem      Size  Used Avail Use% Mounted on
>  > >  > > /dev/loop0       20M   10M   10M  50% /home/cgxu/test/mnt_ext4
>  > >  > > 
>  > >  > > Even though it looks like there is another 10M free space to use,
>  > >  > > if we write new data to diretory test_dir(inherit project id),
>  > >  > > the write will fail with errno(-EDQUOT).
>  > >  > > 
>  > >  > > After this patch, the df result looks like below.
>  > >  > > 
>  > >  > > [root@hades mnt_ext4]# df -h test_dir
>  > >  > > Filesystem      Size  Used Avail Use% Mounted on
>  > >  > > /dev/loop0       10M   10M  3.0K 100% /home/cgxu/test/mnt_ext4
>  > >  > > 
>  > >  > > Signed-off-by: Chengguang Xu <cgxu519@xxxxxxxxxxxx>
>  > >  > > ---
>  > >  > > - Fix a bug in the limit setting logic.
>  > >  > 
>  > >  > Thanks for the patch! It looks good to me. You can add:
>  > >  > 
>  > >  > Reviewed-by: Jan Kara <jack@xxxxxxx>
>  > >  > 
>  > > 
>  > > Hi Jan,
>  > > 
>  > > I have a proposal for another direction.
>  > > Could we add a check for soft limit  in quota layer when setting the value?
>  > > So that we could not bother with  specific file systems on statfs(). 
>  > 
>  > What do you mean exactly? To not allow softlimit to be larger than
>  > hardlimit? That would make some sense but I don't think the risk of
>  > breaking some user that accidentally depends on current behavior is worth
>  > the few checks we can save...
>  > 
>  
> Actually, I thought exactly same as you when I wrote my patch for
> statfs() of ext4.  However, even though softlimit > hardlimit, we cannot
> allow user to use blocks or inode more than hardlimit. IOW, the limit is
> always there and  fixed in this situation.  So  how about set softlimit
> to hardlimit when softlimit > hardlimit and return with success?

Well, the softlimit > hardlimit won't have any effect but if the hardlimit
is then raised (e.g. with a tool like edquota(8)), it may suddently start
having effect. That's why I'm reluctant to just ignore or trim too large
softlimit.
								Honza
-- 
Jan Kara <jack@xxxxxxxx>
SUSE Labs, CR



[Index of Archives]     [Reiser Filesystem Development]     [Ceph FS]     [Kernel Newbies]     [Security]     [Netfilter]     [Bugtraq]     [Linux FS]     [Yosemite National Park]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Linux RAID]     [Samba]     [Device Mapper]     [Linux Media]

  Powered by Linux