xfs
[Top] [All Lists]

Re: assertion failure with latest xfs

To: Lachlan McIlroy <lachlan@xxxxxxx>, Christoph Hellwig <hch@xxxxxxxxxxxxx>, xfs-oss <xfs@xxxxxxxxxxx>
Subject: Re: assertion failure with latest xfs
From: Lachlan McIlroy <lachlan@xxxxxxx>
Date: Thu, 30 Oct 2008 13:29:16 +1100
In-reply-to: <20081029032941.GG4985@disturbed>
References: <49003EFF.4090404@sgi.com> <20081023173149.GA30316@infradead.org> <20081023222126.GA18495@disturbed> <4907B1B3.4020008@sgi.com> <20081029032941.GG4985@disturbed>
Reply-to: lachlan@xxxxxxx
User-agent: Thunderbird 2.0.0.17 (X11/20080914)
Dave Chinner wrote:
On Wed, Oct 29, 2008 at 11:43:31AM +1100, Lachlan McIlroy wrote:
Dave Chinner wrote:
Hmmmm - there's also another bug in xfs_iget_cache_hit() - we don't
drop the reference we got if we found an unlinked inode after the
igrab() (the ENOENT case). I'll fix that as well.

Patch below that I'm currently running through xfsqa.
I gave this patch a go and it still asserted at the same place running
the same test.

Can you put more inode trace points in so that we can see where the extra reference is coming from?

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

<Prev in Thread] Current Thread [Next in Thread>