Received: by 2002:a25:4158:0:0:0:0:0 with SMTP id o85csp5100165yba; Tue, 30 Apr 2019 09:08:11 -0700 (PDT) X-Google-Smtp-Source: APXvYqx9pq2pL0NqIBHlDilk5UAfGqywcMUi3u65BIMMoGZnJLznqclkoC7eE4kGK+vAYVvjpOBY X-Received: by 2002:a62:5885:: with SMTP id m127mr37754372pfb.33.1556640491081; Tue, 30 Apr 2019 09:08:11 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1556640491; cv=none; d=google.com; s=arc-20160816; b=tFE6zfkikvJkD6d3gya2gmFOB+75LZPHoi8K8QEKUAnaUp1jAS3NJP1F/NnIYZ2lUH 3nQAEQuf0bZLs2tCG8+mZMzPURmBCz4CnZ/6Opi0JIaP57xlhFrtgvwecEgX8jqTB8nr g2Jp3EB1bmJjCWY+NJZbd9ExIkBWgwUB/m7VeXX/qhCmg0qnjw/Rl0YZkhOvb16hmJGN QkuWR3DhsP37av5dhetSaiPdXC2Cm+KQqv4z/ea0nopH5lC3uKfFgLVKXP2dTiQf8Rd8 ZlKWVLbiEMuoO2Qu7y/PmiiLB/kB7UkBUD7NURPLeRNhMEf6H+FZhOvLLHTucxDs4Fe4 GdqQ== 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-disposition:mime-version:references:message-id:subject:cc :to:from:date; bh=k1gbuKXShQT5RQvhD0n6i3a3t/UBKMZt1uUzZ9yQV3Q=; b=GTIF/p570ClsXHN0TtWRSfV295Dn+8H0kbBarq2MXJ0wQYSH8GeRucLbJw17GMQbzt m3ZulHb6ltOwvewuICZcvU/jzBnVLrH1h+H+DaMby3RfxMlnYYq68KEHxpzLGPysBXiB JZu9XHlYuQuGvtfrbfURroAxwTgKtJ4pzFQzqaqu1a6XBAy2YVZf70wLRjjHFb4XWHbG IVx37+Y5R5SMN8vrrZe0rGAPXY6xe1JyXNWDbZuPio25Rdq0XcmIEXt3gC0/gCK+RAtY HNXW0KFcyVtmm7M6WctDpgr1qabvS+sxVmt87SFv31AJYq4le7YGsCx5U03bJnlI2r+5 cYMA== ARC-Authentication-Results: i=1; mx.google.com; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-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 d10si39773329pla.80.2019.04.30.09.07.51; Tue, 30 Apr 2019 09:08:11 -0700 (PDT) Received-SPF: pass (google.com: best guess record for domain of linux-kernel-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-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1726368AbfD3QGY (ORCPT + 99 others); Tue, 30 Apr 2019 12:06:24 -0400 Received: from mx2.suse.de ([195.135.220.15]:41562 "EHLO mx1.suse.de" rhost-flags-OK-OK-OK-FAIL) by vger.kernel.org with ESMTP id S1725942AbfD3QGX (ORCPT ); Tue, 30 Apr 2019 12:06:23 -0400 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 671E2AD17; Tue, 30 Apr 2019 16:06:22 +0000 (UTC) Received: by quack2.suse.cz (Postfix, from userid 1000) id B5DB81E3BEC; Tue, 30 Apr 2019 18:06:20 +0200 (CEST) Date: Tue, 30 Apr 2019 18:06:20 +0200 From: Jan Kara To: Chengguang Xu Cc: jack@suse.com, linux-kernel@vger.kernel.org Subject: Re: [PATCH] quota: check time limit when back out space/inode change Message-ID: <20190430160620.GB14000@quack2.suse.cz> References: <20190430064010.22406-1-cgxu519@gmx.com> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <20190430064010.22406-1-cgxu519@gmx.com> User-Agent: Mutt/1.10.1 (2018-07-13) Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org On Tue 30-04-19 14:40:10, Chengguang Xu wrote: > When we fail from allocating inode/space, we back out > the change we already did. In a special case which has > exceeded soft limit by the change, we should also check > time limit and reset it properly. > > Signed-off-by: Chengguang Xu Good catch. Thanks for fixing this. I've added the patch to my tree. Honza > --- > fs/quota/dquot.c | 14 ++++++-------- > 1 file changed, 6 insertions(+), 8 deletions(-) > > diff --git a/fs/quota/dquot.c b/fs/quota/dquot.c > index 9d7dfc47c854..58f15a083dd1 100644 > --- a/fs/quota/dquot.c > +++ b/fs/quota/dquot.c > @@ -1681,13 +1681,11 @@ int __dquot_alloc_space(struct inode *inode, qsize_t number, int flags) > if (!dquots[cnt]) > continue; > spin_lock(&dquots[cnt]->dq_dqb_lock); > - if (reserve) { > - dquots[cnt]->dq_dqb.dqb_rsvspace -= > - number; > - } else { > - dquots[cnt]->dq_dqb.dqb_curspace -= > - number; > - } > + if (reserve) > + dquot_free_reserved_space(dquots[cnt], > + number); > + else > + dquot_decr_space(dquots[cnt], number); > spin_unlock(&dquots[cnt]->dq_dqb_lock); > } > spin_unlock(&inode->i_lock); > @@ -1738,7 +1736,7 @@ int dquot_alloc_inode(struct inode *inode) > continue; > /* Back out changes we already did */ > spin_lock(&dquots[cnt]->dq_dqb_lock); > - dquots[cnt]->dq_dqb.dqb_curinodes--; > + dquot_decr_inodes(dquots[cnt], 1); > spin_unlock(&dquots[cnt]->dq_dqb_lock); > } > goto warn_put_all; > -- > 2.20.1 > > -- Jan Kara SUSE Labs, CR