From: Daniel Moore <dxm@sgi.com>
Date: Thu, 5 May 2005 20:31:34 +0000 (-0700)
Subject: [XFS] stop background sync from waiting for in-use inodes
X-Git-Tag: firefly_0821_release~43383
X-Git-Url: http://demsky.eecs.uci.edu/git/?a=commitdiff_plain;h=3ba0815a4b0709ef5e7b481067573d10806bbe2c;p=firefly-linux-kernel-4.4.55.git

[XFS] stop background sync from waiting for in-use inodes

SGI Modid: xfs-linux:xfs-kern:191586a

Signed-off-by: Daniel Moore <dxm@sgi.com>
Signed-off-by: Christoph Hellwig <hch@sgi.com>
---

diff --git a/fs/xfs/linux-2.6/xfs_aops.c b/fs/xfs/linux-2.6/xfs_aops.c
index 76a84758073a..1e71a9633d8f 100644
--- a/fs/xfs/linux-2.6/xfs_aops.c
+++ b/fs/xfs/linux-2.6/xfs_aops.c
@@ -725,9 +725,12 @@ xfs_page_state_convert(
 	__uint64_t              end_offset;
 	pgoff_t                 end_index, last_index, tlast;
 	int			len, err, i, cnt = 0, uptodate = 1;
-	int			flags = startio ? 0 : BMAPI_TRYLOCK;
+	int			flags;
 	int			page_dirty, delalloc = 0;
 
+	/* wait for other IO threads? */
+	flags = (startio && wbc->sync_mode != WB_SYNC_NONE) ? 0 : BMAPI_TRYLOCK;
+
 	/* Is this page beyond the end of the file? */
 	offset = i_size_read(inode);
 	end_index = offset >> PAGE_CACHE_SHIFT;