函数逻辑报告 |
Source Code:fs\dcache.c |
Create Date:2022-07-29 10:37:36 |
| Last Modify:2020-03-18 10:27:32 | Copyright©Brick |
| 首页 | 函数Tree |
| 注解内核,赢得工具 | 下载SCCT | English |
函数名称:__d_move - move a dentry*@dentry: entry to move*@target: new dentry*@exchange: exchange the two dentries* Update the dcache to reflect the move of a file name
函数原型:static void __d_move(struct dentry *dentry, struct dentry *target, bool exchange)
返回类型:void
参数:
| 类型 | 参数 | 名称 |
|---|---|---|
| struct dentry * | dentry | |
| struct dentry * | target | |
| bool | exchange |
| 2815 | BUG_ON(d_ancestor - search for an ancestor*@p1: ancestor dentry*@p2: child dentry* Returns the ancestor dentry of p2 which is a child of p1, if p1 is* an ancestor of p2, else NULL.) |
| 2816 | old_parent等于 parent directory |
| 2817 | p等于d_ancestor - search for an ancestor*@p1: ancestor dentry*@p2: child dentry* Returns the ancestor dentry of p2 which is a child of p1, if p1 is* an ancestor of p2, else NULL. |
| 2821 | 否则如果非p则 |
| 2823 | 加自旋锁 |
| 2824 | spin_lock_nested( & d_lock, DENTRY_D_LOCK_NESTED) |
| 2825 | 否则 |
| 2827 | 加自旋锁 |
| 2828 | 如果p不等于target则spin_lock_nested( & d_lock, DENTRY_D_LOCK_NESTED) |
| 2832 | spin_lock_nested( & d_lock, 2) |
| 2833 | spin_lock_nested( & d_lock, 3) |
| 2835 | 如果此条件成立可能性小(为编译器优化)(d_in_lookup(target))则 |
| 2837 | n等于start_dir_add(dir) |
| 2838 | __d_lookup_done(target) |
| 2841 | write_seqcount_begin( & per dentry seqlock ) |
| 2845 | 如果非目录项存在于哈希中则d_drop - drop a dentry*@dentry: dentry to drop* d_drop() unhashes the entry from the parent dentry hashes, so that it won't* be found through a VFS lookup any more |
| 2847 | 如果非目录项存在于哈希中则d_drop - drop a dentry*@dentry: dentry to drop* d_drop() unhashes the entry from the parent dentry hashes, so that it won't* be found through a VFS lookup any more |
| 2851 | parent directory 等于 parent directory |
| 2852 | 如果非exchange则 |
| 2858 | 否则 |
| 2859 | parent directory 等于old_parent |
| 2860 | swap_names(dentry, target) |
| 2861 | 链表项移动到头部 |
| 2862 | __d_rehash(target) |
| 2863 | fsnotify_update_flags(target) |
| 2865 | 链表项移动到头部 |
| 2866 | __d_rehash(dentry) |
| 2867 | fsnotify_update_flags(dentry) |
| 2868 | fscrypt_handle_d_move(dentry) |
| 2870 | write_seqcount_end( & per dentry seqlock ) |
| 2871 | write_seqcount_end( & per dentry seqlock ) |
| 2873 | 如果dir则end_dir_add(dir, n) |
| 2876 | 如果 parent directory 不等于old_parent则自旋锁解锁 |
| 2878 | 如果dentry不等于old_parent则自旋锁解锁 |
| 2880 | 自旋锁解锁 |
| 2881 | 自旋锁解锁 |
| 名称 | 描述 |
|---|---|
| d_move | 改变目录项 |
| d_exchange | d_exchange - exchange two dentries*@dentry1: first dentry*@dentry2: second dentry |
| __d_unalias | This helper attempts to cope with remotely renamed directories* It assumes that the caller is already holding* Note: If ever the locking in lock_rename() changes, then please* remember to update this too... |
| d_splice_alias | 链接目录项 |
| 源代码转换工具 开放的插件接口 | X |
|---|---|
| 支持:c/c++/esqlc/java Oracle/Informix/Mysql 插件可实现:逻辑报告 代码生成和批量转换代码 |