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); |
inodepre-allocated inode to use for insert to cache
hashvalhash value (usually inode number) to get
testcallback used for comparisons between inodes
setcallback 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.