On Thu, Apr 07, 2011 at 04:28:05PM +1000, Dave Chinner wrote: > From: Dave Chinner <dchinner@xxxxxxxxxx> > > When the underlying inode buffer is locked and xfs_sync_inode_attr() > is doing a non-blocking flush, xfs_iflush() can return EAGAIN. When > this happen??, clear the error rather than returning it to > xfs_inode_ag_walk(), as returning EAGAIN will result in the AG walk > delaying for a short while and trying again. This can result in > background walks getting stuck on the one AG until inode buffer is > unlocked by some other means. > > This behaviour was noticed when analysing event traces followed by > code inspection and verification of the fix via further traces. It's a bit sad that we have two callers now that need to explicitly ignore the EAGAIN and only one that actually cares, but until we get rid of VFS-dirty inodes and ->write_inode it looks like we can't do anything about it. Reviewed-by: Christoph Hellwig <hch@xxxxxx> _______________________________________________ xfs mailing list xfs@xxxxxxxxxxx http://oss.sgi.com/mailman/listinfo/xfs