iget5_locked — obtain an inode from a mounted file system
struct inode * iget5_locked ( | struct super_block * sb, |
unsigned long hashval, | |
int (*test)
( struct inode *, void *) , | |
int (*set)
( struct inode *, void *) , | |
void * data) ; |
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
Search for the inode specified by hashval
and data
in the inode cache,
and if present it is return it 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, allocate a new inode and return it 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_hash_lock held, so can't
sleep.