NFS: nfs_lookup - don't hash dentry when optimising away the lookup
authorTrond Myklebust <Trond.Myklebust@netapp.com>
Tue, 5 Sep 2006 16:27:44 +0000 (12:27 -0400)
committerTrond Myklebust <Trond.Myklebust@netapp.com>
Sat, 23 Sep 2006 03:25:01 +0000 (23:25 -0400)
commitfd6840714d9cf6e93f1d42b904860a94df316b85
treee72a0ef8bff8f1b6183596dbce3de34570ee6180
parent762d4527c2fc19d821a13d9a3455ccc2d4073731
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>
fs/nfs/dir.c