--- fs/dquot.c.orig Mon Jan 26 20:21:55 2004 +++ fs/dquot.c Wed Jan 28 12:01:12 2004 @@ -834,8 +836,8 @@ restart: struct dentry *dentry = dget(filp->f_dentry); if (hash != inode->i_dqh) - printk("··· BAD INODE: add_dquot_ref(%p[%d], %d) %p[%d] »%*s«\n", - hash, hash->dqh_xid, type, inode, inode->i_xid, + printk("··· BAD INODE: add_dquot_ref(%p[%d], %d) %p[%d](%p) »%*s«\n", + hash, hash->dqh_xid, type, inode, inode->i_xid, inode->i_dqh, filp->f_dentry->d_name.len, filp->f_dentry->d_name.name); file_list_unlock(); @@ -1106,6 +1108,12 @@ void dquot_initialize(struct inode *inod dqh = get_dqhash(inode->i_sb, current->vx_id); dprintk("··· dquot_initialize: #%d %p\n", (dqh)?dqh->dqh_id:0, dqh); + if (dqh && !inode->i_dqh) { + printk("··· MISSING DQH: %p(%d) add %p(#%d,%d)\n", + inode, inode->i_xid, dqh, dqh->dqh_id, dqh->dqh_xid); + inode->i_dqh = dqh; + } + /* Build list of quotas to initialize... We can block here */ for (cnt = 0; cnt < MAXQUOTAS; cnt++) { dquot[cnt] = NODQUOT;