linux/fs/nfs
Chuck Lever f895c53f8a NFS: Make close(2) asynchronous when closing NFS O_DIRECT files
For NFSv2 and v3:

O_DIRECT writes are always synchronous, and aren't cached, so nothing
should be flushed when closing an NFS O_DIRECT file descriptor.  Thus
there are no write errors to report on close(2).

In addition, there's no cached data to verify on the next open(2),
so we don't need clean GETATTR results at close time to compare with.

Thus, there's no need for the nfs_revalidate_inode() call when closing
an NFS O_DIRECT file.  This reduces the number of synchronous
on-the-wire requests for a simple open-write-close of an NFS O_DIRECT
file by roughly 20%.

For NFSv4:

Call nfs4_do_close() with wait set to zero when closing an NFS
O_DIRECT file.  The CLOSE will go on the wire, but the application
won't wait for it to complete.

Signed-off-by: Chuck Lever <chuck.lever@oracle.com>
Signed-off-by: Trond Myklebust <Trond.Myklebust@netapp.com>
2010-02-10 08:31:05 -05:00
..
Kconfig nfs: new subdir Documentation/filesystems/nfs 2009-10-27 19:34:04 -04:00
Makefile NFS: Add a dns resolver for use with NFSv4 referrals and migration 2009-08-19 18:22:15 -04:00
cache_lib.c NFS: Add a dns resolver for use with NFSv4 referrals and migration 2009-08-19 18:22:15 -04:00
cache_lib.h NFS: Add a dns resolver for use with NFSv4 referrals and migration 2009-08-19 18:22:15 -04:00
callback.c nfs41: add support for callback with RPC version number 4 2009-12-05 13:19:01 -05:00
callback.h nfs41: implement cb_recall_slot 2010-02-10 08:30:59 -05:00
callback_proc.c nfs41: cleanup callback code to use __be32 type 2010-02-10 08:31:01 -05:00
callback_xdr.c nfs41: cleanup callback code to use __be32 type 2010-02-10 08:31:01 -05:00
client.c nfs41: V2 adjust max_rqst_sz, max_resp_sz w.r.t to rsize, wsize 2009-12-05 13:36:55 -05:00
delegation.c nfs41: v2 fix cb_recall bug 2009-12-05 13:48:55 -05:00
delegation.h nfs41: v2 fix cb_recall bug 2009-12-05 13:48:55 -05:00
dir.c nfs: fix oops in nfs_rename() 2010-01-06 18:48:26 -05:00
direct.c nfs: Panic when commit fails 2009-10-23 14:16:30 -04:00
dns_resolve.c NFSv4: Ensure nfs_dns_lookup() and nfs_dns_update() are declared static 2009-12-03 15:54:01 -05:00
dns_resolve.h NFS: Add a dns resolver for use with NFSv4 referrals and migration 2009-08-19 18:22:15 -04:00
file.c NFS: Improve NFS iostat byte count accuracy for writes 2010-02-10 08:31:04 -05:00
fscache-index.c NFS: Add read context retention for FS-Cache to call back with 2009-04-03 16:42:44 +01:00
fscache.c FS-Cache: Handle pages pending storage that get evicted under OOM conditions 2009-11-19 18:11:35 +00:00
fscache.h NFS: Propagate 'fsc' mount option through automounts 2009-09-23 14:36:39 -04:00
getroot.c headers: mnt_namespace.h redux 2009-07-08 09:31:56 -07:00
idmap.c SUNRPC: Replace rpc_client->cl_dentry and cl_mnt, with a cl_path 2009-08-09 15:14:24 -04:00
inode.c NFS: Make close(2) asynchronous when closing NFS O_DIRECT files 2010-02-10 08:31:05 -05:00
internal.h NFS: Fix up the declaration of nfs4_restart_rpc when NFSv4 not configured 2009-12-07 09:00:24 -05:00
iostat.h this_cpu: Use this_cpu operations for NFS statistics 2009-10-03 19:48:22 +09:00
mount_clnt.c Merge branch 'patches_cel-for-2.6.32' into nfs-for-2.6.32 2009-08-10 17:45:50 -04:00
namespace.c NFS: Fix nfs_path() to always return a '/' at the beginning of the path 2009-06-22 21:28:25 -07:00
nfs2xdr.c headers: utsname.h redux 2009-09-23 18:13:10 -07:00
nfs3acl.c nfs: remove unnecessary NFS_INO_INVALID_ACL checks 2009-06-17 18:02:14 -07:00
nfs3proc.c nfs: handle NFSv3 -EKEYEXPIRED errors as we would -EJUKEBOX 2010-02-10 08:30:51 -05:00
nfs3xdr.c headers: utsname.h redux 2009-09-23 18:13:10 -07:00
nfs4_fs.h nfs41: implement cb_recall_slot 2010-02-10 08:30:59 -05:00
nfs4namespace.c NFSv4: Fix the referral mount code 2009-10-06 15:42:20 -04:00
nfs4proc.c nfs41: resize slot table in reset 2010-02-10 08:30:59 -05:00
nfs4renewd.c NFSv4: Kill nfs4_renewd_prepare_shutdown() 2009-10-08 11:50:55 -04:00
nfs4state.c nfs41: clear NFS4CLNT_RECALL_SLOT bit on session reset 2010-02-10 08:31:00 -05:00
nfs4xdr.c nfs41: Adjust max cache response size value 2010-02-10 08:30:54 -05:00
nfsroot.c NFS: Update MNT and MNT3 reply decoding functions 2009-06-17 18:02:13 -07:00
pagelist.c NFS: Fix an Oops when truncating a file 2010-02-03 08:27:22 -05:00
proc.c nfs: handle NFSv2 -EKEYEXPIRED returns from RPC layer appropriately 2010-02-10 08:30:52 -05:00
read.c NFS: Fix up the declaration of nfs4_restart_rpc when NFSv4 not configured 2009-12-07 09:00:24 -05:00
super.c NFS: Fix a umount race 2010-02-03 08:27:35 -05:00
symlink.c nfs: remove unnecessary NFS_NEED_* defines 2008-04-23 16:13:37 -04:00
sysctl.c NFS: Avoid warnings when CONFIG_NFS_V4=n 2010-01-26 15:42:11 -05:00
unlink.c NFS: Fix up the declaration of nfs4_restart_rpc when NFSv4 not configured 2009-12-07 09:00:24 -05:00
write.c NFS: Make nfs_commitdata_release static 2010-01-26 15:42:03 -05:00