Received: by 2002:a25:31c3:0:0:0:0:0 with SMTP id x186csp501225ybx; Wed, 6 Nov 2019 04:07:52 -0800 (PST) X-Google-Smtp-Source: APXvYqwClb+PnM+aLp+qw3tLrnAKijIkN1wsvPGw6OPYWswWuDppWM7GUhsfCHpa527geTlTYZXa X-Received: by 2002:a05:6402:602:: with SMTP id n2mr2280761edv.23.1573042072233; Wed, 06 Nov 2019 04:07:52 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1573042072; cv=none; d=google.com; s=arc-20160816; b=DVkX5IUQtDetEAUdo/RBN75Q89HZBhrmSJVpNr26XYhjAPtUPQcO3KAC//zzNrEoMY Su4Gh+sWqKu9cZkMks8Mq/lnTqJE1Fv2P8YG1nS2vRzwD0WD4HYnA1XLy/TAiuQm3vA5 KbiSSC1/uUBevFeRZGUXfWdxBYtrKKgENjHX8G1UoHz7P0cNm+BjCfa6Qfq2bilnOPbN 34y10pXuisPVaEXzdl4OGhAgy5c1VWLT+GZCjeJIzQJPY42deNmu7311eCdxCSCsASjS UiCLhUCCzEv3oXNDWAT3c5EPIvE7zV2QVDzDwfvjghtNU9N3KPNmWMCYBhrd9/pNzFdK zdhw== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:user-agent:in-reply-to :content-transfer-encoding:content-disposition:mime-version :references:message-id:subject:cc:to:from:date; bh=+wdrgtZ6kKQc29OwFw/fPOLXHGNQqnVGc92gGRxgxB0=; b=ZzYjQxrsEWDoo1M9Zs6IwCeHUDxX2iXgfGUy7ZyhyUQsJN17kfFKIzqRyGim0eM3EQ LRWdQ1nBY07FeSuaqt3bn/K9o+pxNGUxlEbXtp8EkevsHPc5RLQtb7zgWD2wBHc0vX2D BPDrtVGjBLH3r6bStM/nUvot0lxQyBbybiPnvRrsSRgjd3BsMqx3NSnqk0gJaTSZhx5c xfi1e7g9RcHzX0Q7p83QvOymF7UApzu6GtZkXpRWeyz9qL1aAcEOQEoT08OmxdYKj3AJ txit3gZMo2QoimYpEbouf1kOQUxgwELJomXjkTaZoqUOUN4lhqxrA8QD4kLxWmvXVmjv GkCg== ARC-Authentication-Results: i=1; mx.google.com; spf=pass (google.com: best guess record for domain of linux-ext4-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-ext4-owner@vger.kernel.org Return-Path: Received: from vger.kernel.org (vger.kernel.org. [209.132.180.67]) by mx.google.com with ESMTP id b15si456649eju.362.2019.11.06.04.07.05; Wed, 06 Nov 2019 04:07:52 -0800 (PST) Received-SPF: pass (google.com: best guess record for domain of linux-ext4-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) client-ip=209.132.180.67; Authentication-Results: mx.google.com; spf=pass (google.com: best guess record for domain of linux-ext4-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-ext4-owner@vger.kernel.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1731601AbfKFMGt (ORCPT + 99 others); Wed, 6 Nov 2019 07:06:49 -0500 Received: from mx2.suse.de ([195.135.220.15]:42784 "EHLO mx1.suse.de" rhost-flags-OK-OK-OK-FAIL) by vger.kernel.org with ESMTP id S1729164AbfKFMGs (ORCPT ); Wed, 6 Nov 2019 07:06:48 -0500 X-Virus-Scanned: by amavisd-new at test-mx.suse.de Received: from relay2.suse.de (unknown [195.135.220.254]) by mx1.suse.de (Postfix) with ESMTP id 5D96DB20E; Wed, 6 Nov 2019 12:06:46 +0000 (UTC) Received: by quack2.suse.cz (Postfix, from userid 1000) id 433A01E4862; Wed, 6 Nov 2019 13:06:45 +0100 (CET) Date: Wed, 6 Nov 2019 13:06:45 +0100 From: Jan Kara To: Chengguang Xu Cc: Jan Kara , "adilger.kernel" , tytso , Jan Kara , linux-ext4 Subject: Re: [PATCH v2] ext4: choose hardlimit when softlimit is larger than hardlimit in ext4_statfs_project() Message-ID: <20191106120645.GH16085@quack2.suse.cz> References: <20191015102327.5333-1-cgxu519@mykernel.net> <20191015112523.GB29554@quack2.suse.cz> <16e3f00ed3d.da5d5acd1285.2289879597060795256@mykernel.net> <20191106094924.GA16085@quack2.suse.cz> <16e404d465e.ddfd6f53546.5756417115406096069@mykernel.net> MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Disposition: inline Content-Transfer-Encoding: 8bit In-Reply-To: <16e404d465e.ddfd6f53546.5756417115406096069@mykernel.net> User-Agent: Mutt/1.10.1 (2018-07-13) Sender: linux-ext4-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-ext4@vger.kernel.org On Wed 06-11-19 18:40:36, Chengguang Xu wrote: > ---- 在 星期三, 2019-11-06 17:49:24 Jan Kara 撰写 ---- > > On Wed 06-11-19 12:37:35, Chengguang Xu wrote: > > > ---- 在 星期二, 2019-10-15 19:25:23 Jan Kara 撰写 ---- > > > > 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 > > > > > --- > > > > > - Fix a bug in the limit setting logic. > > > > > > > > Thanks for the patch! It looks good to me. You can add: > > > > > > > > Reviewed-by: Jan Kara > > > > > > > > > > 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 SUSE Labs, CR