struct inode * iget5_locked (struct super_block * sb, unsigned long hashval, int (*test) struct inode *, void *, int (*set) struct inode *, void *, void * data);
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.
This documentation was generated with kernel version 2.6.0.