|
@@ -881,11 +881,14 @@ xfs_file_aio_write(
|
|
/* Handle various SYNC-type writes */
|
|
/* Handle various SYNC-type writes */
|
|
if ((file->f_flags & O_DSYNC) || IS_SYNC(inode)) {
|
|
if ((file->f_flags & O_DSYNC) || IS_SYNC(inode)) {
|
|
loff_t end = pos + ret - 1;
|
|
loff_t end = pos + ret - 1;
|
|
|
|
+ int error;
|
|
|
|
|
|
xfs_rw_iunlock(ip, iolock);
|
|
xfs_rw_iunlock(ip, iolock);
|
|
- ret = -xfs_file_fsync(file, pos, end,
|
|
|
|
|
|
+ error = xfs_file_fsync(file, pos, end,
|
|
(file->f_flags & __O_SYNC) ? 0 : 1);
|
|
(file->f_flags & __O_SYNC) ? 0 : 1);
|
|
xfs_rw_ilock(ip, iolock);
|
|
xfs_rw_ilock(ip, iolock);
|
|
|
|
+ if (error)
|
|
|
|
+ ret = error;
|
|
}
|
|
}
|
|
|
|
|
|
out_unlock:
|
|
out_unlock:
|