Provided by: linux-doc-2.6.15_2.6.15-23.39_all bug

NAME

       iget5_locked - obtain an inode from a mounted file system

SYNOPSIS

       struct inode * iget5_locked  (struct super_block * sb,
                                        unsigned long hashval,
                                        int (*test) <funcparams>struct inode *, void *</funcparams>,
                                        int (*set) <funcparams>struct inode *, void *</funcparams>,
                                        void * data);

ARGUMENTS

       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

DESCRIPTION

       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.