| find_inode_nowait(9) - phpMan
FIND_INODE_NOWAIT(9) The Linux VFS FIND_INODE_NOWAIT(9)
NAME
find_inode_nowait - find an inode in the inode cache
SYNOPSIS
struct inode * find_inode_nowait(struct super_block * sb, unsigned long hashval,
int (*match) (struct inode *, unsigned long, void *),
void * data);
ARGUMENTS
sb
super block of file system to search
hashval
hash value (usually inode number) to search for
match
callback used for comparisons between inodes
data
opaque data pointer to pass to match
DESCRIPTION
Search for the inode specified by hashval and data in the inode cache, where the helper
function match will return 0 if the inode does not match, 1 if the inode does match, and
-1 if the search should be stopped. The match function must be responsible for taking the
i_lock spin_lock and checking i_state for an inode being freed or being initialized, and
incrementing the reference count before returning 1. It also must not sleep, since it is
called with the inode_hash_lock spinlock held.
This is a even more generalized version of ilookup5 when the function must never block ---
find_inode can block in __wait_on_freeing_inode --- or when the caller can not increment
the reference count because the resulting iput might cause an inode eviction. The tradeoff
is that the match funtion must be very carefully implemented.
COPYRIGHT
Kernel Hackers Manual 4.8. January 2017 FIND_INODE_NOWAIT(9)
|