From 4f9ea86237b8d0005f5467fe817b4f1f0955072c Mon Sep 17 00:00:00 2001 From: Sage Weil Date: Wed, 2 Nov 2011 07:11:46 -0700 Subject: [PATCH] debug iget/igrab/iput --- fs/inode.c | 21 +++++++++++++++++++++ 1 file changed, 21 insertions(+) diff --git a/fs/inode.c b/fs/inode.c index ec7924696a13..752b46d99664 100644 --- a/fs/inode.c +++ b/fs/inode.c @@ -314,6 +314,13 @@ static void init_once(void *foo) */ void __iget(struct inode *inode) { + if (inode->i_sb && + inode->i_sb->s_type && + inode->i_sb->s_type->name && + inode->i_sb->s_type->name[0] == 'c') + printk("iget %p %d -> %d\n", inode, + atomic_read(&inode->i_count), + atomic_read(&inode->i_count)+1); atomic_inc(&inode->i_count); } @@ -322,6 +329,13 @@ void __iget(struct inode *inode) */ void ihold(struct inode *inode) { + if (inode->i_sb && + inode->i_sb->s_type && + inode->i_sb->s_type->name && + inode->i_sb->s_type->name[0] == 'c') + printk("ihold %p %d -> %d\n", inode, + atomic_read(&inode->i_count), + atomic_read(&inode->i_count)+1); WARN_ON(atomic_inc_return(&inode->i_count) < 2); } EXPORT_SYMBOL(ihold); @@ -1358,6 +1372,13 @@ void iput(struct inode *inode) if (inode) { BUG_ON(inode->i_state & I_CLEAR); + if (inode->i_sb && + inode->i_sb->s_type && + inode->i_sb->s_type->name && + inode->i_sb->s_type->name[0] == 'c') + printk("iput %p %d -> %d\n", inode, + atomic_read(&inode->i_count), + atomic_read(&inode->i_count)-1); if (atomic_dec_and_lock(&inode->i_count, &inode->i_lock)) iput_final(inode); } -- 2.47.3