From dcabf8b37718961476e62ee2177bd333ee917380 Mon Sep 17 00:00:00 2001 From: Dave Chinner Date: Thu, 21 Apr 2011 09:34:26 +0000 Subject: [PATCH] --- yaml --- r: 250071 b: refs/heads/master c: ee58abdfcc8201f500107c7ba03f738af8b49b85 h: refs/heads/master i: 250069: 3b7df2c184b57726ec6628e50209b247d1622a9d 250067: 79c8c5c973a444277c13b390c7c2196fe67b07d5 250063: 31c6307b283c14c1b16a399a597ee1176a4d5d6a v: v3 --- [refs] | 2 +- trunk/fs/xfs/linux-2.6/xfs_sync.c | 10 ++++++++++ 2 files changed, 11 insertions(+), 1 deletion(-) diff --git a/[refs] b/[refs] index 02c8b520060a..3c70354bb882 100644 --- a/[refs] +++ b/[refs] @@ -1,2 +1,2 @@ --- -refs/heads/master: e57375153d7376f2a923d98c388c1e20227b5731 +refs/heads/master: ee58abdfcc8201f500107c7ba03f738af8b49b85 diff --git a/trunk/fs/xfs/linux-2.6/xfs_sync.c b/trunk/fs/xfs/linux-2.6/xfs_sync.c index 3e898a48122d..cb1bb2080e44 100644 --- a/trunk/fs/xfs/linux-2.6/xfs_sync.c +++ b/trunk/fs/xfs/linux-2.6/xfs_sync.c @@ -267,6 +267,16 @@ xfs_sync_inode_attr( error = xfs_iflush(ip, flags); + /* + * We don't want to try again on non-blocking flushes that can't run + * again immediately. If an inode really must be written, then that's + * what the SYNC_WAIT flag is for. + */ + if (error == EAGAIN) { + ASSERT(!(flags & SYNC_WAIT)); + error = 0; + } + out_unlock: xfs_iunlock(ip, XFS_ILOCK_SHARED); return error;