lists.openwall.net   lists  /  announce  owl-users  owl-dev  john-users  john-dev  passwdqc-users  yescrypt  popa3d-users  /  oss-security  kernel-hardening  musl  sabotage  tlsify  passwords  /  crypt-dev  xvendor  /  Bugtraq  Full-Disclosure  linux-kernel  linux-netdev  linux-ext4  linux-hardening  linux-cve-announce  PHC 
Open Source and information security mailing list archives
 
Hash Suite for Android: free password hash cracker in your pocket
[<prev] [next>] [<thread-prev] [day] [month] [year] [list]
Message-ID: <20191106120645.GH16085@quack2.suse.cz>
Date:   Wed, 6 Nov 2019 13:06:45 +0100
From:   Jan Kara <jack@...e.cz>
To:     Chengguang Xu <cgxu519@...ernel.net>
Cc:     Jan Kara <jack@...e.cz>,
        "adilger.kernel" <adilger.kernel@...ger.ca>, tytso <tytso@....edu>,
        Jan Kara <jack@...e.com>,
        linux-ext4 <linux-ext4@...r.kernel.org>
Subject: Re: [PATCH v2] ext4: choose hardlimit when softlimit is larger than
 hardlimit in ext4_statfs_project()

On Wed 06-11-19 18:40:36, Chengguang Xu wrote:
>  ---- 在 星期三, 2019-11-06 17:49:24 Jan Kara <jack@...e.cz> 撰写 ----
>  > On Wed 06-11-19 12:37:35, Chengguang Xu wrote:
>  > >  ---- 在 星期二, 2019-10-15 19:25:23 Jan Kara <jack@...e.cz> 撰写 ----
>  > >  > 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@...es 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@...es 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@...es 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@...ernel.net>
>  > >  > > ---
>  > >  > > - 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@...e.cz>
>  > >  > 
>  > > 
>  > > 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@...e.com>
SUSE Labs, CR

Powered by blists - more mailing lists

Powered by Openwall GNU/*/Linux Powered by OpenVZ