linux/fs/nfs
Trond Myklebust fd6840714d NFS: nfs_lookup - don't hash dentry when optimising away the lookup
If the open intents tell us that a given lookup is going to result in a,
exclusive create, we currently optimize away the lookup call itself. The
reason is that the lookup would not be atomic with the create RPC call, so
why do it in the first place?

A problem occurs, however, if the VFS aborts the exclusive create operation
after the lookup, but before the call to create the file/directory: in this
case we will end up with a hashed negative dentry in the dcache that has
never been looked up.
Fix this by only actually hashing the dentry once the create operation has
been successfully completed.

Signed-off-by: Trond Myklebust <Trond.Myklebust@netapp.com>
2006-09-22 23:25:01 -04:00
..
callback.c NFS: Generalise the nfs_client structure 2006-09-22 23:24:33 -04:00
callback.h NFS: Fix NFS4 callback up/down prototypes 2006-09-22 23:24:31 -04:00
callback_proc.c NFS: Generalise the nfs_client structure 2006-09-22 23:24:33 -04:00
callback_xdr.c Remove obsolete #include <linux/config.h> 2006-06-30 19:25:36 +02:00
client.c Fix a referral error Oops 2006-09-22 23:24:56 -04:00
delegation.c NFS: Generalise the nfs_client structure 2006-09-22 23:24:33 -04:00
delegation.h NFS: Rename struct nfs4_client to struct nfs_client 2006-09-22 23:24:31 -04:00
dir.c NFS: nfs_lookup - don't hash dentry when optimising away the lookup 2006-09-22 23:25:01 -04:00
direct.c [PATCH] NFS: large non-page-aligned direct I/O clobbers memory 2006-09-08 10:22:51 -07:00
file.c NFS: Make better use of inode* dereferencing macros 2006-09-22 23:24:35 -04:00
getroot.c NFS: Secure the roots of the NFS subtrees in a shared superblock 2006-09-22 23:24:38 -04:00
idmap.c SUNRPC: Make rpc_mkpipe() take the parent dentry as an argument 2006-09-22 23:24:54 -04:00
inode.c NFS: Add server and volume lists to /proc 2006-09-22 23:24:37 -04:00
internal.h NFS: Add server and volume lists to /proc 2006-09-22 23:24:37 -04:00
iostat.h NFSv4: Fix an oops in nfs4_fill_super 2006-03-20 13:44:48 -05:00
Makefile NFS: Share NFS superblocks per-protocol per-server per-FSID 2006-09-22 23:24:37 -04:00
mount_clnt.c NFS: NFS_ROOT should use the new rpc_create API 2006-09-22 23:24:55 -04:00
namespace.c NFS: Share NFS superblocks per-protocol per-server per-FSID 2006-09-22 23:24:37 -04:00
nfs2xdr.c NFS: Use cached page as buffer for NFS symlink requests 2006-09-22 23:24:53 -04:00
nfs3acl.c NFSv3: Client-side nfsacl caching fix 2006-06-09 09:34:11 -04:00
nfs3proc.c NFS: Use cached page as buffer for NFS symlink requests 2006-09-22 23:24:53 -04:00
nfs3xdr.c NFS: Use cached page as buffer for NFS symlink requests 2006-09-22 23:24:53 -04:00
nfs4_fs.h NFS: Share NFS superblocks per-protocol per-server per-FSID 2006-09-22 23:24:37 -04:00
nfs4namespace.c NFS: Share NFS superblocks per-protocol per-server per-FSID 2006-09-22 23:24:37 -04:00
nfs4proc.c NFS: Use cached page as buffer for NFS symlink requests 2006-09-22 23:24:53 -04:00
nfs4renewd.c NFSv4: Fix a use-after-free issue with the nfs server. 2006-09-22 23:24:54 -04:00
nfs4state.c NFS: Share NFS superblocks per-protocol per-server per-FSID 2006-09-22 23:24:37 -04:00
nfs4xdr.c NFS: Use cached page as buffer for NFS symlink requests 2006-09-22 23:24:53 -04:00
nfsroot.c [PATCH] nfsroot port= parameter fix [backport of 2.4 fix] 2006-02-07 21:00:42 -05:00
pagelist.c Merge git://git.kernel.org/pub/scm/linux/kernel/git/bunk/trivial 2006-06-30 15:39:30 -07:00
proc.c NFS: Use cached page as buffer for NFS symlink requests 2006-09-22 23:24:53 -04:00
read.c NFS: Share NFS superblocks per-protocol per-server per-FSID 2006-09-22 23:24:37 -04:00
super.c NFSv4: Fix a use-after-free issue with the nfs server. 2006-09-22 23:24:54 -04:00
symlink.c nfs: remove nfs_put_link() 2006-06-25 06:39:35 -04:00
sysctl.c Remove obsolete #include <linux/config.h> 2006-06-30 19:25:36 +02:00
unlink.c NFS: kzalloc conversion in fs/nfs 2006-03-20 13:44:10 -05:00
write.c Add a real API for dealing with blk_congestion_wait() 2006-09-22 23:24:54 -04:00