|
@@ -597,7 +597,7 @@ xfs_fsync(
|
|
{
|
|
{
|
|
xfs_trans_t *tp;
|
|
xfs_trans_t *tp;
|
|
int error = 0;
|
|
int error = 0;
|
|
- int log_flushed = 0, changed = 1;
|
|
|
|
|
|
+ int log_flushed = 0;
|
|
|
|
|
|
xfs_itrace_entry(ip);
|
|
xfs_itrace_entry(ip);
|
|
|
|
|
|
@@ -627,18 +627,10 @@ xfs_fsync(
|
|
* disk yet, the inode will be still be pinned. If it is,
|
|
* disk yet, the inode will be still be pinned. If it is,
|
|
* force the log.
|
|
* force the log.
|
|
*/
|
|
*/
|
|
-
|
|
|
|
xfs_iunlock(ip, XFS_ILOCK_SHARED);
|
|
xfs_iunlock(ip, XFS_ILOCK_SHARED);
|
|
-
|
|
|
|
if (xfs_ipincount(ip)) {
|
|
if (xfs_ipincount(ip)) {
|
|
error = _xfs_log_force(ip->i_mount, XFS_LOG_SYNC,
|
|
error = _xfs_log_force(ip->i_mount, XFS_LOG_SYNC,
|
|
&log_flushed);
|
|
&log_flushed);
|
|
- } else {
|
|
|
|
- /*
|
|
|
|
- * If the inode is not pinned and nothing has changed
|
|
|
|
- * we don't need to flush the cache.
|
|
|
|
- */
|
|
|
|
- changed = 0;
|
|
|
|
}
|
|
}
|
|
} else {
|
|
} else {
|
|
/*
|
|
/*
|
|
@@ -673,7 +665,7 @@ xfs_fsync(
|
|
xfs_iunlock(ip, XFS_ILOCK_EXCL);
|
|
xfs_iunlock(ip, XFS_ILOCK_EXCL);
|
|
}
|
|
}
|
|
|
|
|
|
- if ((ip->i_mount->m_flags & XFS_MOUNT_BARRIER) && changed) {
|
|
|
|
|
|
+ if (ip->i_mount->m_flags & XFS_MOUNT_BARRIER) {
|
|
/*
|
|
/*
|
|
* If the log write didn't issue an ordered tag we need
|
|
* If the log write didn't issue an ordered tag we need
|
|
* to flush the disk cache for the data device now.
|
|
* to flush the disk cache for the data device now.
|