--- ./fs/dcache.c.orig 2004-01-30 14:54:45.000000000 -0700 +++ ./fs/dcache.c 2004-02-20 14:49:18.000000000 -0700 @@ -348,8 +348,20 @@ dentry_stat.nr_unused--; /* Unused dentry with a count? */ - if (atomic_read(&dentry->d_count)) + if (atomic_read(&dentry->d_count)) { + struct inode *inode = dentry->d_inode; + printk(KERN_CRIT "dentry %*s %p->%lu/%u(%p/%s) ct %d\n", + dentry->d_name.len, dentry->d_name.name, dentry, + inode ? inode->i_ino : 0, + inode ? inode->i_generation : 0, inode, + inode ? inode->i_sb ? + inode->i_sb->s_type->name : "" : "", + atomic_read(&dentry->d_count)); + spin_unlock(&dcache_lock); + set_task_state(current, TASK_UNINTERRUPTIBLE); + schedule(); BUG(); + } prune_one_dentry(dentry); if (!--count)