diff options
Diffstat (limited to 'fs/nfs/file.c')
-rw-r--r-- | fs/nfs/file.c | 6 |
1 files changed, 6 insertions, 0 deletions
diff --git a/fs/nfs/file.c b/fs/nfs/file.c index d6ee60fc3ba6..143a19037ce8 100644 --- a/fs/nfs/file.c +++ b/fs/nfs/file.c | |||
@@ -378,6 +378,12 @@ static ssize_t nfs_file_write(struct kiocb *iocb, const struct iovec *iov, | |||
378 | 378 | ||
379 | nfs_add_stats(inode, NFSIOS_NORMALWRITTENBYTES, count); | 379 | nfs_add_stats(inode, NFSIOS_NORMALWRITTENBYTES, count); |
380 | result = generic_file_aio_write(iocb, iov, nr_segs, pos); | 380 | result = generic_file_aio_write(iocb, iov, nr_segs, pos); |
381 | /* Return error values for O_SYNC and IS_SYNC() */ | ||
382 | if (result >= 0 && (IS_SYNC(inode) || (iocb->ki_filp->f_flags & O_SYNC))) { | ||
383 | int err = nfs_fsync(iocb->ki_filp, dentry, 1); | ||
384 | if (err < 0) | ||
385 | result = err; | ||
386 | } | ||
381 | out: | 387 | out: |
382 | return result; | 388 | return result; |
383 | 389 | ||