Provided by:
linux-doc-2.6.15_2.6.15-23.39_all 
NAME
iget5_locked - obtain an inode from a mounted file system
SYNOPSIS
struct inode * iget5_locked (struct super_block * sb,
unsigned long hashval,
int (*test) <funcparams>struct inode *, void *</funcparams>,
int (*set) <funcparams>struct inode *, void *</funcparams>,
void * data);
ARGUMENTS
sb super block of file system
hashval
hash value (usually inode number) to get
test callback used for comparisons between inodes
set callback used to initialize a new struct inode
data opaque data pointer to pass to test and set
DESCRIPTION
This is iget without the read_inode portion of get_new_inode.
iget5_locked uses ifind to search for the inode specified by hashval
and data in the inode cache and if present it is returned with an
increased reference count. This is a generalized version of iget_locked
for file systems where the inode number is not sufficient for unique
identification of an inode.
If the inode is not in cache, get_new_inode is called to allocate a new
inode and this is returned locked, hashed, and with the I_NEW flag set.
The file system gets to fill it in before unlocking it via
unlock_new_inode.
Note both test and set are called with the inode_lock held, so can’t
sleep.