[PATCH 05/16] xfs: don't truncate prealloc from frequently accessed inodes

Christoph Hellwig hch at infradead.org
Mon Nov 8 05:36:45 CST 2010


I'd be much more happy about fixing this properly in nfsd.  But I guess
the fix is simple enough that we can put it into XFS for now.  Any
reason you use up a whole int in the inode instead of using a flag in
i_flags?

> -
> -		ASSERT(ip->i_delayed_blks == 0);
> +		/*
> +		 * even after flushing the inode, there can still be delalloc
> +		 * blocks on the inode beyond EOF due to speculative
> +		 * preallocation. These are not removed until the release
> +		 * function is called or the inode is inactivated. Hence we
> +		 * cannot assert here that ip->i_delayed_blks == 0.
> +		 */

Shouldn't this be in a separate patch given that we can fail the flush
due to iolock contention?  I think this and the swapext fix are .37
material in fact.




More information about the xfs mailing list