[XFS] Create xfs_iflags_test_and_clear helper function

SGI-PV: 969608
SGI-Modid: xfs-linux-melb:xfs-kern:29496a

Signed-off-by: Christoph Hellwig <hch@infradead.org>
Signed-off-by: David Chinner <dgc@sgi.com>
Signed-off-by: Tim Shimmin <tes@sgi.com>
diff --git a/fs/xfs/xfs_vnodeops.c b/fs/xfs/xfs_vnodeops.c
index f2c037a..8ed7af3 100644
--- a/fs/xfs/xfs_vnodeops.c
+++ b/fs/xfs/xfs_vnodeops.c
@@ -1541,12 +1541,7 @@
 		 * significantly reducing the time window where we'd otherwise
 		 * be exposed to that problem.
 		 */
-		spin_lock(&ip->i_flags_lock);
-		truncated = __xfs_iflags_test(ip, XFS_ITRUNCATED);
-		if (truncated)
-			ip->i_flags &= ~XFS_ITRUNCATED;
-		spin_unlock(&ip->i_flags_lock);
-
+		truncated = xfs_iflags_test_and_clear(ip, XFS_ITRUNCATED);
 		if (truncated && VN_DIRTY(vp) && ip->i_delayed_blks > 0)
 			xfs_flush_pages(ip, 0, -1, XFS_B_ASYNC, FI_NONE);
 	}