Searched hist:"7 b281ee026552f10862b617a2a51acf49c829554" (Results 1 – 3 of 3) sorted by relevance
/openbmc/linux/fs/nfs/ |
H A D | nfs4file.c | diff 7b281ee026552f10862b617a2a51acf49c829554 Tue Sep 11 14:38:32 CDT 2012 Trond Myklebust <Trond.Myklebust@netapp.com> NFS: fsync() must exit with an error if page writeback failed
We need to ensure that if the call to filemap_write_and_wait_range() fails, then we report that error back to the application.
Signed-off-by: Trond Myklebust <Trond.Myklebust@netapp.com>
|
H A D | file.c | diff 7b281ee026552f10862b617a2a51acf49c829554 Tue Sep 11 14:38:32 CDT 2012 Trond Myklebust <Trond.Myklebust@netapp.com> NFS: fsync() must exit with an error if page writeback failed
We need to ensure that if the call to filemap_write_and_wait_range() fails, then we report that error back to the application.
Signed-off-by: Trond Myklebust <Trond.Myklebust@netapp.com>
|
H A D | write.c | diff ada8e20d044c0fa5610e504ce6fb4578ebd3edd9 Sat Dec 15 16:12:14 CST 2012 Trond Myklebust <Trond.Myklebust@netapp.com> NFS: Don't use SetPageError in the NFS writeback code
The writeback code is already capable of passing errors back to user space by means of the open_context->error. In the case of ENOSPC, Neil Brown is reporting seeing 2 errors being returned.
Neil writes:
"e.g. if /mnt2/ if an nfs mounted filesystem that has no space then
strace dd if=/dev/zero conv=fsync >> /mnt2/afile count=1
reported Input/output error and the relevant parts of the strace output are:
write(1, "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"..., 512) = 512 fsync(1) = -1 EIO (Input/output error) close(1) = -1 ENOSPC (No space left on device)"
Neil then shows that the duplication of error messages appears to be due to the use of the PageError() mechanism, which causes filemap_fdatawait_range to return the extra EIO. The regression was introduced by commit 7b281ee026552f10862b617a2a51acf49c829554 (NFS: fsync() must exit with an error if page writeback failed).
Fix this by removing the call to SetPageError(), and just relying on open_context->error reporting the ENOSPC back to fsync().
Reported-by: Neil Brown <neilb@suse.de> Tested-by: Neil Brown <neilb@suse.de> Signed-off-by: Trond Myklebust <Trond.Myklebust@netapp.com> Cc: stable@vger.kernel.org [3.6+]
|