diff options
author | David Howells <dhowells@redhat.com> | 2006-08-22 20:06:07 -0400 |
---|---|---|
committer | Trond Myklebust <Trond.Myklebust@netapp.com> | 2006-09-22 23:24:30 -0400 |
commit | 770bfad846ab6628444428467b11fa6773ae9ea1 (patch) | |
tree | 5fd803319fe718367dca081b23abd36bfc85f78a /fs/nfs/callback.c | |
parent | 979df72e6f963b42ee484f2eca049c3344da0ba7 (diff) | |
download | linux-770bfad846ab6628444428467b11fa6773ae9ea1.tar.gz linux-770bfad846ab6628444428467b11fa6773ae9ea1.tar.bz2 linux-770bfad846ab6628444428467b11fa6773ae9ea1.zip |
NFS: Add dentry materialisation op
The attached patch adds a new directory cache management function that prepares
a disconnected anonymous function to be connected into the dentry tree. The
anonymous dentry is transferred the name and parentage from another dentry.
The following changes were made in [try #2]:
(*) d_materialise_dentry() now switches the parentage of the two nodes around
correctly when one or other of them is self-referential.
The following changes were made in [try #7]:
(*) d_instantiate_unique() has had the interior part split out as function
__d_instantiate_unique(). Callers of this latter function must be holding
the appropriate locks.
(*) _d_rehash() has been added as a wrapper around __d_rehash() to call it
with the most obvious hash list (the one from the name). d_rehash() now
calls _d_rehash().
(*) d_materialise_dentry() is now __d_materialise_dentry() and is static.
(*) d_materialise_unique() added to perform the combination of d_find_alias(),
d_materialise_dentry() and d_add_unique() that the NFS client was doing
twice, all within a single dcache_lock critical section. This reduces the
number of times two different spinlocks were being accessed.
The following further changes were made:
(*) Add the dentries onto their parents d_subdirs lists.
Signed-Off-By: David Howells <dhowells@redhat.com>
Signed-off-by: Trond Myklebust <Trond.Myklebust@netapp.com>
Diffstat (limited to 'fs/nfs/callback.c')
0 files changed, 0 insertions, 0 deletions