On Thu, Oct 30, 2008 at 04:38:33PM +1100, Dave Chinner wrote:
> On Thu, Oct 30, 2008 at 01:29:16PM +1100, Lachlan McIlroy wrote:
> > xfs_sync_inodes_ag() found the inode before it was completely
> > initialised.
> >
> > --> itrace @ 0xffff880078d67800/0xffff880073563e40
> > ref @fs/xfs/xfs_inode.c:863(xfs_inode_alloc+0x205) i_count = 1
> > cpu = 2 pid = 9938 ra = xfs_iread+0x29
> > exit from xfs_iget.alloc i_count = 1
> > cpu = 2 pid = 9938 ra = xfs_trans_iget+0x205
> > ref @fs/xfs/xfs_iget.c:218(xfs_iget+0x585) i_count = 1
> > cpu = 2 pid = 9938 ra = xfs_trans_iget+0x205
> > ref @fs/xfs/xfs_iget.c:305(xfs_iget+0x643) i_count = 1
> > cpu = 2 pid = 9938 ra = xfs_trans_iget+0x205
> > ref @fs/xfs/linux-2.6/xfs_sync.c:113(xfs_sync_inodes_ag+0x118) i_count = 1
> > cpu = 3 pid = 9953 ra = xfs_sync_inodes+0x68
> > ref @fs/xfs/linux-2.6/xfs_iops.c:780(xfs_setup_inode+0x2c) i_count = 2
> > cpu = 2 pid = 9938 ra = xfs_ialloc+0x5d8
>
> Ah - ok, that makes sense now. That should be trivial to fix up;
> we just need to avoid XFS_INEW() inodes in xfs_sync_inodes_ag()
> and probably also in xfs_qm_dqrele_all(), and that will mean
> the assert needs to be removed as well.
>
> Patch soon.
I noticed that the radix tree walk didn't get fixed in
xfs_qm_syscalls.c for the last round of bug fixes. The fix for
this really needs to have that as well. I'll post a series in
a minute....
Cheers,
Dave.
--
Dave Chinner
david@xxxxxxxxxxxxx
|