The techniques of the present invention involve constructing and caching a
chain of FIDs that represent the directory path to a system resource.
Typically a lookupname( ) service returns a handle to the object and a
handle to the object's owning directory. The owning directory handle can
then be used to obtain a file identifier (FID) for the owning directory.
This FID constitutes the first FID in the chain and will also act as the
lookup key in the cache. The process next finds the directory's parent. A
FID is obtained with the parent handle. This FID is added to the chain.
The process repeats until the root of the system's file tree is reached.
This result is a chain or array of FIDs representing the full path name
of the directory containing the accessed object. The chain begins with
the directory FID closest to the accessed object and ends with the FID
representing the root of the file tree. Once constructed, the FID chain
which forms a binary representation of a directory path name is placed in
a cache. The cached chain remains valid unless a rename operation occurs
on any FID components in the chain. On an object access, the process
obtains a FID for the object's owning directory. This FID which
represents the first FID in a FID chain is then used to search the FID
chain cache. If a match is found, then the cached FID represents the path
name for the access object. With this found chain, the expense of
constructing the additional component FIDs for the object's owning oath
is avoided.