diff options
Diffstat (limited to 'fs/xfs')
-rw-r--r-- | fs/xfs/linux-2.6/xfs_file.c | 13 |
1 files changed, 4 insertions, 9 deletions
diff --git a/fs/xfs/linux-2.6/xfs_file.c b/fs/xfs/linux-2.6/xfs_file.c index 43f9554adaac..42dd3bcfba6b 100644 --- a/fs/xfs/linux-2.6/xfs_file.c +++ b/fs/xfs/linux-2.6/xfs_file.c | |||
@@ -180,17 +180,12 @@ xfs_file_fsync( | |||
180 | * disk yet, the inode will be still be pinned. If it is, | 180 | * disk yet, the inode will be still be pinned. If it is, |
181 | * force the log. | 181 | * force the log. |
182 | */ | 182 | */ |
183 | xfs_iunlock(ip, XFS_ILOCK_SHARED); | ||
184 | if (xfs_ipincount(ip)) { | 183 | if (xfs_ipincount(ip)) { |
185 | if (ip->i_itemp->ili_last_lsn) { | 184 | error = _xfs_log_force_lsn(ip->i_mount, |
186 | error = _xfs_log_force_lsn(ip->i_mount, | 185 | ip->i_itemp->ili_last_lsn, |
187 | ip->i_itemp->ili_last_lsn, | 186 | XFS_LOG_SYNC, &log_flushed); |
188 | XFS_LOG_SYNC, &log_flushed); | ||
189 | } else { | ||
190 | error = _xfs_log_force(ip->i_mount, | ||
191 | XFS_LOG_SYNC, &log_flushed); | ||
192 | } | ||
193 | } | 187 | } |
188 | xfs_iunlock(ip, XFS_ILOCK_SHARED); | ||
194 | } | 189 | } |
195 | 190 | ||
196 | if (ip->i_mount->m_flags & XFS_MOUNT_BARRIER) { | 191 | if (ip->i_mount->m_flags & XFS_MOUNT_BARRIER) { |