From mboxrd@z Thu Jan 1 00:00:00 1970 From: Dmitry Monakhov Subject: [PATCH] quota: add per-inode reservaton space sanity checks. Date: Tue, 30 Mar 2010 18:25:28 +0400 Message-ID: <1269959128-9626-1-git-send-email-dmonakhov@openvz.org> Cc: jack@suse.cz, Dmitry Monakhov To: linux-fsdevel@vger.kernel.org Return-path: Received: from mail-bw0-f209.google.com ([209.85.218.209]:53823 "EHLO mail-bw0-f209.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1755073Ab0C3OZf (ORCPT ); Tue, 30 Mar 2010 10:25:35 -0400 Received: by bwz1 with SMTP id 1so4414642bwz.21 for ; Tue, 30 Mar 2010 07:25:34 -0700 (PDT) Sender: linux-fsdevel-owner@vger.kernel.org List-ID: 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); *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); *inode_reserved_space(inode) -= number; spin_unlock(&inode->i_lock); } -- 1.6.6.1