2.6.31 xfs_fs_destroy_inode: cannot reclaim
Dave Chinner
david at fromorbit.com
Sun Oct 18 20:17:10 CDT 2009
On Sun, Oct 18, 2009 at 07:59:10PM -0400, Christoph Hellwig wrote:
> On Thu, Oct 15, 2009 at 05:06:57PM +0200, Tommy van Leeuwen wrote:
> > > Thanks. ?The patch below should fix the inode reclaim race that could
> > > lead to the double free you're seeing. ?To be applied ontop of all
> > > the other patches I sent you.
> >
> > Hi Christoph,
> >
> > Here are 2 more crashes with this patch applied, both having xfs_debug
> > on and showing different traces (not inode reclaim related?). Hope
> > it's usefull.
>
> Can't make too much sense of it, but the dir2 is something you reported
> earlier already. We must be stomping over inodes somewhere, but I'm
> not too sure where exactly. Can you try throwing the patch below ontop
> of your stack? It fixes an area where we could theoretically corrupt
> inode state.
>
> Index: xfs/fs/xfs/linux-2.6/xfs_sync.c
> ===================================================================
> --- xfs.orig/fs/xfs/linux-2.6/xfs_sync.c 2009-10-16 22:54:41.513254291 +0200
> +++ xfs/fs/xfs/linux-2.6/xfs_sync.c 2009-10-16 22:57:10.451256293 +0200
> @@ -180,6 +180,11 @@ xfs_sync_inode_valid(
> return EFSCORRUPTED;
> }
>
> + if (xfs_iflags_test(ip, XFS_INEW | XFS_IRECLAIMABLE | XFS_IRECLAIM)) {
> + read_unlock(&pag->pag_ici_lock);
> + return ENOENT;
> + }
This needs an IRELE(ip) here, doesn't it?
Cheers,
Dave.
--
Dave Chinner
david at fromorbit.com
More information about the xfs
mailing list