Browse Source

NFS: Fix error reporting in nfs_file_write()

When doing O_DSYNC writes, the actual write errors are reported through
generic_write_sync(), so we must test the result.

Reported-by: J. R. Okajima <hooanon05g@gmail.com>
Fixes: 18290650b1c8 ("NFS: Move buffered I/O locking into nfs_file_write()")
Signed-off-by: Trond Myklebust <trond.myklebust@primarydata.com>
Trond Myklebust 9 years ago
parent
commit
c49edecd51
1 changed files with 4 additions and 1 deletions
  1. 4 1
      fs/nfs/file.c

+ 4 - 1
fs/nfs/file.c

@@ -657,7 +657,10 @@ ssize_t nfs_file_write(struct kiocb *iocb, struct iov_iter *from)
 	if (result <= 0)
 	if (result <= 0)
 		goto out;
 		goto out;
 
 
-	written = generic_write_sync(iocb, result);
+	result = generic_write_sync(iocb, result);
+	if (result < 0)
+		goto out;
+	written = result;
 	iocb->ki_pos += written;
 	iocb->ki_pos += written;
 
 
 	/* Return error values */
 	/* Return error values */