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