From mboxrd@z Thu Jan 1 00:00:00 1970 From: Jan Kara Subject: Re: [PATCH] quota: add per-inode reservaton space sanity checks. Date: Tue, 30 Mar 2010 17:39:34 +0200 Message-ID: <20100330153933.GC3424@quack.suse.cz> References: <1269959128-9626-1-git-send-email-dmonakhov@openvz.org> Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Cc: linux-fsdevel@vger.kernel.org, jack@suse.cz To: Dmitry Monakhov Return-path: Received: from cantor.suse.de ([195.135.220.2]:52672 "EHLO mx1.suse.de" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1752218Ab0C3Pji (ORCPT ); Tue, 30 Mar 2010 11:39:38 -0400 Content-Disposition: inline In-Reply-To: <1269959128-9626-1-git-send-email-dmonakhov@openvz.org> Sender: linux-fsdevel-owner@vger.kernel.org List-ID: On Tue 30-03-10 18:25:28, Dmitry Monakhov wrote: > We already has per-dquot sanity checks, but with per-inode checks > quota leakage investigation becomes much easier. > > Signed-off-by: Dmitry Monakhov > --- > fs/quota/dquot.c | 4 ++++ > 1 files changed, 4 insertions(+), 0 deletions(-) > > diff --git a/fs/quota/dquot.c b/fs/quota/dquot.c > index e0b870f..4db57b7 100644 > --- a/fs/quota/dquot.c > +++ b/fs/quota/dquot.c > @@ -1428,6 +1428,8 @@ EXPORT_SYMBOL(inode_add_rsv_space); > void inode_claim_rsv_space(struct inode *inode, qsize_t number) > { > spin_lock(&inode->i_lock); > + if (*inode_reserved_space(inode) < number) > + WARN_ON_ONCE(1); Maybe just: WARN_ON_ONCE(*inode_reserved_space(inode) < number) > *inode_reserved_space(inode) -= number; > __inode_add_bytes(inode, number); > spin_unlock(&inode->i_lock); > @@ -1437,6 +1439,8 @@ EXPORT_SYMBOL(inode_claim_rsv_space); > void inode_sub_rsv_space(struct inode *inode, qsize_t number) > { > spin_lock(&inode->i_lock); > + if (*inode_reserved_space(inode) < number) > + WARN_ON_ONCE(1); And here as well... > *inode_reserved_space(inode) -= number; > spin_unlock(&inode->i_lock); > } But otherwise I agree... Honza -- Jan Kara SUSE Labs, CR