diff options
| -rw-r--r-- | fs/xfs/xfs_vnodeops.c | 10 |
1 files changed, 8 insertions, 2 deletions
diff --git a/fs/xfs/xfs_vnodeops.c b/fs/xfs/xfs_vnodeops.c index 43241e289800..ddd2c5d1b854 100644 --- a/fs/xfs/xfs_vnodeops.c +++ b/fs/xfs/xfs_vnodeops.c | |||
| @@ -629,8 +629,14 @@ xfs_fsync( | |||
| 629 | */ | 629 | */ |
| 630 | xfs_iunlock(ip, XFS_ILOCK_SHARED); | 630 | xfs_iunlock(ip, XFS_ILOCK_SHARED); |
| 631 | if (xfs_ipincount(ip)) { | 631 | if (xfs_ipincount(ip)) { |
| 632 | error = _xfs_log_force(ip->i_mount, XFS_LOG_SYNC, | 632 | if (ip->i_itemp->ili_last_lsn) { |
| 633 | &log_flushed); | 633 | error = _xfs_log_force_lsn(ip->i_mount, |
| 634 | ip->i_itemp->ili_last_lsn, | ||
| 635 | XFS_LOG_SYNC, &log_flushed); | ||
| 636 | } else { | ||
| 637 | error = _xfs_log_force(ip->i_mount, | ||
| 638 | XFS_LOG_SYNC, &log_flushed); | ||
| 639 | } | ||
| 634 | } | 640 | } |
| 635 | } else { | 641 | } else { |
| 636 | /* | 642 | /* |
