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:
pgp4Nl7QTnrB8.pgp
Description: PGP signature