inode_insert5 — obtain an inode from a mounted file system
struct inode * inode_insert5 ( | struct inode * inode, |
unsigned long hashval, | |
int (*test)
( struct inode *, void *) , | |
int (*set)
( struct inode *, void *) , | |
void * data) ; |
inode
pre-allocated inode to use for insert to cache
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 variant of iget5_locked
for callers that don't want to fail on memory
allocation of inode.
If the inode is not in cache, insert the pre-allocated inode to cache 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.