linux-next: manual merge of the xfs tree with Linus' tree

From: Stephen Rothwell
Date: Mon Jan 02 2012 - 20:06:47 EST


Hi all,

Today's linux-next merge of the xfs tree got a conflict in
fs/xfs/xfs_sync.c between commit be4f1ac82877 ("xfs: log all dirty inodes
in xfs_fs_sync_fs") from the tree and commit 34625c661b01 ("xfs: remove
xfs_qm_sync") from the xfs tree.

Just context changes. I fixed it up (see below) and can carry the fix as
necessary.
--
Cheers,
Stephen Rothwell sfr@xxxxxxxxxxxxxxxx

diff --cc fs/xfs/xfs_sync.c
index f0994aedc,5b9ec37..0000000
--- a/fs/xfs/xfs_sync.c
+++ b/fs/xfs/xfs_sync.c
@@@ -385,20 -359,7 +385,17 @@@ xfs_quiesce_data
{
int error, error2 = 0;

+ /*
+ * Log all pending size and timestamp updates. The vfs writeback
+ * code is supposed to do this, but due to its overagressive
+ * livelock detection it will skip inodes where appending writes
+ * were written out in the first non-blocking sync phase if their
+ * completion took long enough that it happened after taking the
+ * timestamp for the cut-off in the blocking phase.
+ */
+ xfs_inode_ag_iterator(mp, xfs_log_dirty_inode, 0);
+
- xfs_qm_sync(mp, SYNC_TRYLOCK);
- xfs_qm_sync(mp, SYNC_WAIT);
-
- /* force out the newly dirtied log buffers */
+ /* force out the log */
xfs_log_force(mp, XFS_LOG_SYNC);

/* write superblock and hoover up shutdown errors */

Attachment: pgp00000.pgp
Description: PGP signature