diff options
Diffstat (limited to 'fs/xfs/xfs_sync.c')
| -rw-r--r-- | fs/xfs/xfs_sync.c | 9 | 
1 files changed, 4 insertions, 5 deletions
diff --git a/fs/xfs/xfs_sync.c b/fs/xfs/xfs_sync.c index 72c01a1c16e..40b75eecd2b 100644 --- a/fs/xfs/xfs_sync.c +++ b/fs/xfs/xfs_sync.c @@ -707,14 +707,13 @@ xfs_reclaim_inode_grab(  		return 1;  	/* -	 * do some unlocked checks first to avoid unnecessary lock traffic. -	 * The first is a flush lock check, the second is a already in reclaim -	 * check. Only do these checks if we are not going to block on locks. +	 * If we are asked for non-blocking operation, do unlocked checks to +	 * see if the inode already is being flushed or in reclaim to avoid +	 * lock traffic.  	 */  	if ((flags & SYNC_TRYLOCK) && -	    (!ip->i_flush.done || __xfs_iflags_test(ip, XFS_IRECLAIM))) { +	    __xfs_iflags_test(ip, XFS_IFLOCK | XFS_IRECLAIM))  		return 1; -	}  	/*  	 * The radix tree lock here protects a thread in xfs_iget from racing  |