- 论坛徽章:
- 16
|
shrink_dcache_memory函数会调用到prune_dcache进行处理,在prune_dcache中有个for循环,从dentry_unused链表上找
dentry,可以却有下边这句:
/*
* We found an inuse dentry which was not removed from
* dentry_unused because of laziness during lookup. Do not free
* it - just keep it off the dentry_unused list.
*/
if (atomic_read(&dentry->d_count)) {
spin_unlock(&dentry->d_lock);
continue;
}
请教laziness during lookup是什么意思?
shrink_icache_memory函数也调用了类似的prune_icache函数,这个函数从inode_unused链表上找inode,也有类似的一句:
if (inode->i_state || atomic_read(&inode->i_count)) {
list_move(&inode->i_list, &inode_unused);
continue;
}
在inode_unused上的inode的i_count应该为0才对啊,为什么还要判断,多此一举? |
|