summaryrefslogtreecommitdiff
path: root/fs/xfs/xfs_trans_inode.c
diff options
context:
space:
mode:
authorDave Chinner <david@fromorbit.com>2015-11-03 13:27:58 +1100
committerDave Chinner <david@fromorbit.com>2015-11-03 13:27:58 +1100
commit2da5c4b05ab55225f5d1fcc8c1c37d1918232bf4 (patch)
treef19bd87d6e66c251566be226fdf40c24c168e04a /fs/xfs/xfs_trans_inode.c
parentfcd8a399a9d44a637b5ded0eeea14c7933132121 (diff)
parentfc0561cefc04e7803c0f6501ca4f310a502f65b8 (diff)
Merge branch 'xfs-misc-fixes-for-4.4-2' into for-next
Diffstat (limited to 'fs/xfs/xfs_trans_inode.c')
-rw-r--r--fs/xfs/xfs_trans_inode.c9
1 files changed, 9 insertions, 0 deletions
diff --git a/fs/xfs/xfs_trans_inode.c b/fs/xfs/xfs_trans_inode.c
index 17280cd71934..b97f1df910ab 100644
--- a/fs/xfs/xfs_trans_inode.c
+++ b/fs/xfs/xfs_trans_inode.c
@@ -108,6 +108,15 @@ xfs_trans_log_inode(
ASSERT(xfs_isilocked(ip, XFS_ILOCK_EXCL));
/*
+ * Record the specific change for fdatasync optimisation. This
+ * allows fdatasync to skip log forces for inodes that are only
+ * timestamp dirty. We do this before the change count so that
+ * the core being logged in this case does not impact on fdatasync
+ * behaviour.
+ */
+ ip->i_itemp->ili_fsync_fields |= flags;
+
+ /*
* First time we log the inode in a transaction, bump the inode change
* counter if it is configured for this to occur. We don't use
* inode_inc_version() because there is no need for extra locking around