1.添加inode到inode cache链表

当inode的引用计数器i_count为0后,会调用iput_final去释放
static void iput_final(struct inode *inode)
{
struct super_block *sb = inode->i_sb;
const struct super_operations *op = inode->i_sb->s_op;
unsigned long state;
int drop;
WARN_ON(inode->i_state & I_NEW);
if (op->drop_inode)
drop = op->drop_inode(inode);
else
drop = generic_drop_inode(inode);
//引用计数为0之后,将inode放到lru中,等待回收
if (!drop &&
!(inode->i_state & I_DONTCACHE) &&
(sb->s_flags & SB_ACTIVE)) {
inode_add_lru(inode);
spin_unlock(&inode->i_lock);
return;
}
//对于已经被文件系统除名的文件,即i_nlink = 0, 不必再保留inode,直接释放掉
WRITE_ONCE(inode->i_state, state