linux-stable-rt/fs/nfs
OGAWA Hirofumi 28fd129827 [PATCH] Fix and add EXPORT_SYMBOL(filemap_write_and_wait)
This patch add EXPORT_SYMBOL(filemap_write_and_wait) and use it.

See mm/filemap.c:

And changes the filemap_write_and_wait() and filemap_write_and_wait_range().

Current filemap_write_and_wait() doesn't wait if filemap_fdatawrite()
returns error.  However, even if filemap_fdatawrite() returned an
error, it may have submitted the partially data pages to the device.
(e.g. in the case of -ENOSPC)

<quotation>
Andrew Morton writes,

If filemap_fdatawrite() returns an error, this might be due to some
I/O problem: dead disk, unplugged cable, etc.  Given the generally
crappy quality of the kernel's handling of such exceptions, there's a
good chance that the filemap_fdatawait() will get stuck in D state
forever.
</quotation>

So, this patch doesn't wait if filemap_fdatawrite() returns the -EIO.

Trond, could you please review the nfs part?  Especially I'm not sure,
nfs must use the "filemap_fdatawrite(inode->i_mapping) == 0", or not.

Acked-by: Trond Myklebust <trond.myklebust@fys.uio.no>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
2006-01-08 20:13:47 -08:00
..
Makefile NFSv4: Allow user to set the port used by the NFSv4 callback channel 2006-01-06 14:58:52 -05:00
callback.c NFSv4: Allow user to set the port used by the NFSv4 callback channel 2006-01-06 14:58:52 -05:00
callback.h NFSv4: Allow user to set the port used by the NFSv4 callback channel 2006-01-06 14:58:52 -05:00
callback_proc.c NFSv4: Ensure change attribute returned by GETATTR callback conforms to spec 2006-01-06 14:58:51 -05:00
callback_xdr.c
delegation.c NFSv4: Fix an Oops in nfs_do_expire_all_delegations 2006-01-06 14:58:58 -05:00
delegation.h NFSv4: Ensure change attribute returned by GETATTR callback conforms to spec 2006-01-06 14:58:51 -05:00
dir.c NFSv4: Ensure that we return the delegation on the target of a rename too. 2006-01-06 14:58:50 -05:00
direct.c NFS: Make directIO aware of compound pages... 2006-01-06 14:58:50 -05:00
file.c
idmap.c NFSv4: Allow entries in the idmap cache to expire 2006-01-06 14:58:58 -05:00
inode.c [PATCH] Fix and add EXPORT_SYMBOL(filemap_write_and_wait) 2006-01-08 20:13:47 -08:00
mount_clnt.c SUNRPC: get rid of cl_chatty 2006-01-06 14:58:56 -05:00
nfs2xdr.c NFS: get rid of some needless code obfuscation in xdr_encode_sattr(). 2006-01-06 14:58:57 -05:00
nfs3acl.c
nfs3proc.c NFSv3: try get_root user-supplied security_flavor 2006-01-06 14:58:55 -05:00
nfs3xdr.c NFS: Send valid mode bits to the server 2006-01-06 14:58:57 -05:00
nfs4_fs.h NFSv4: Remove requirement for machine creds for the "setclientid" operation 2006-01-06 14:58:47 -05:00
nfs4proc.c NFSv4: Ensure DELEGRETURN returns attributes 2006-01-06 14:58:51 -05:00
nfs4renewd.c NFSv4: Remove requirement for machine creds for the "renew" operation 2006-01-06 14:58:47 -05:00
nfs4state.c NFSv4: Remove requirement for machine creds for the "setclientid" operation 2006-01-06 14:58:47 -05:00
nfs4xdr.c NFS: Send valid mode bits to the server 2006-01-06 14:58:57 -05:00
nfsroot.c NFS: support large reads and writes on the wire 2006-01-06 14:58:49 -05:00
pagelist.c
proc.c NFS: Send valid mode bits to the server 2006-01-06 14:58:57 -05:00
read.c NFS: support large reads and writes on the wire 2006-01-06 14:58:49 -05:00
symlink.c
sysctl.c NFSv4: Allow entries in the idmap cache to expire 2006-01-06 14:58:58 -05:00
unlink.c
write.c NFS: Make stat() return updated mtimes after a write() 2006-01-06 14:58:50 -05:00