函数逻辑报告

Linux Kernel

v5.5.9

Brick Technologies Co., Ltd

Source Code:fs\dcache.c Create Date:2022-07-29 10:37:30
Last Modify:2020-03-18 10:27:32 Copyright©Brick
首页 函数Tree
注解内核,赢得工具下载SCCTEnglish

函数名称:收缩高速缓存区

函数原型:void shrink_dcache_parent(struct dentry *parent)

返回类型:void

参数:

类型参数名称
struct dentry *parent
1542  循环
1543  struct select_data data = {start = parent}
1545  初始化链表头
1546  d_walk - walk the dentry tree*@parent: start of walk*@data: data passed to @enter() and @finish()*@enter: callback when first entering the dentry* The @enter() callbacks are called with d_lock held.
1548  如果非链表为空
1550  继续下一循环
1553  cond_resched()
1554  如果非found退出
1556  victim = NULL
1557  d_walk - walk the dentry tree*@parent: start of walk*@data: data passed to @enter() and @finish()*@enter: callback when first entering the dentry* The @enter() callbacks are called with d_lock held.
1558  如果victim
1560  加自旋锁
1561  如果非Lock a dentry from shrink list
1564  否则
1572  如果非链表为空shrink_dentry_list( & dispose)
调用者
名称描述
vfs_renamevfs_rename - rename a filesystem object*@old_dir: parent of source*@old_dentry: source*@new_dir: parent of destination*@new_dentry: destination*@delegated_inode: returns an inode needing a delegation break*@flags: rename flags
do_one_tree
d_invalidate废除目录项
simple_fill_superhe inodes created here are not hashed. If you use iunique to generate* unique inode values later for this filesystem, then you must take care* to pass it an appropriate max_reserved value to avoid collisions.
shrink_dcache_inodeTry to evict the inode's dentries from the dentry cache. If the inode is a* directory, then it can have at most one dentry; however, that dentry may be* pinned by child dentries, so first try to evict the children too.