Home
last modified time | relevance | path

Searched hist:"7 b281ee026552f10862b617a2a51acf49c829554" (Results 1 – 3 of 3) sorted by relevance

/openbmc/linux/fs/nfs/
H A Dnfs4file.cdiff 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 Dfile.cdiff 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 Dwrite.cdiff 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+]