diff --git a/debian.master/changelog b/debian.master/changelog index 3e8f7e6..6729c02 100644 --- a/debian.master/changelog +++ b/debian.master/changelog @@ -1,4 +1,4 @@ -linux (2.6.31-14.48+bug396286v2) karmic; urgency=low +linux (2.6.31-14.48+bug396286v5) karmic; urgency=low [ Colin Watson ] diff --git a/fs/inode.c b/fs/inode.c index 5112981..e47b045 100644 --- a/fs/inode.c +++ b/fs/inode.c @@ -207,6 +207,8 @@ out: } EXPORT_SYMBOL(inode_init_always); +static int inode_check_acl(struct inode *inode); + static struct inode *alloc_inode(struct super_block *sb) { struct inode *inode; @@ -220,12 +222,20 @@ static struct inode *alloc_inode(struct super_block *sb) return NULL; if (unlikely(inode_init_always(sb, inode))) { + if (inode->i_acl != ACL_NOT_CACHED) + printk(KERN_ERR "iia fail i_acl=%p\n", inode->i_acl); + if (inode->i_default_acl != ACL_NOT_CACHED) + printk(KERN_ERR "iia fail i_default_acl=%p\n", inode->i_default_acl); if (inode->i_sb->s_op->destroy_inode) inode->i_sb->s_op->destroy_inode(inode); else kmem_cache_free(inode_cachep, inode); return NULL; } + if (inode->i_acl != ACL_NOT_CACHED) + printk(KERN_ERR "iia ok i_acl=%p\n", inode->i_acl); + if (inode->i_default_acl != ACL_NOT_CACHED) + printk(KERN_ERR "iia ok i_default_acl=%p\n", inode->i_default_acl); return inode; } @@ -347,7 +357,9 @@ static void init_once(void *foo) */ void __iget(struct inode *inode) { - inode_check_acl(inode); + if(inode_check_acl(inode)) + printk(KERN_ERR "(detected at __iget)\n"); + if (atomic_read(&inode->i_count)) { atomic_inc(&inode->i_count); return;