函数逻辑报告 |
Source Code:fs\dcache.c |
Create Date:2022-07-29 10:37:34 |
Last Modify:2020-03-18 10:27:32 | Copyright©Brick |
首页 | 函数Tree |
注解内核,赢得工具 | 下载SCCT | English |
函数名称:d_alloc_parallel
函数原型:struct dentry *d_alloc_parallel(struct dentry *parent, const struct qstr *name, wait_queue_head_t *wq)
返回类型:struct dentry
参数:
类型 | 参数 | 名称 |
---|---|---|
struct dentry * | parent | |
const struct qstr * | name | |
wait_queue_head_t * | wq |
2519 | b等于in_lookup_hash(parent, hash) |
2525 | 如果此条件成立可能性小(为编译器优化)(!new)则返回:错误号 |
2528 | retry : |
2530 | seq等于smp_load_acquire( & i_dir_seq) |
2533 | 如果此条件成立可能性小(为编译器优化)(dentry)则 |
2547 | 如果此条件成立可能性小(为编译器优化)(read_seqretry( & rename_lock, r_seq))则 |
2549 | 转到:retry |
2552 | 如果此条件成立可能性小(为编译器优化)(seq & 1)则 |
2554 | 转到:retry |
2557 | hlist_bl_lock(b) |
2558 | 如果此条件成立可能性小(为编译器优化)(READ_ONCE(i_dir_seq) != seq)则 |
2559 | hlist_bl_unlock(b) |
2561 | 转到:retry |
2573 | 如果 parent directory 不等于parent则继续下一循环 |
2575 | 如果非d_same_name(dentry, parent, name)则继续下一循环 |
2577 | hlist_bl_unlock(b) |
2579 | 如果非 有引用则递增计数则 |
2581 | 转到:retry |
2589 | 加自旋锁 |
2590 | d_wait_lookup(dentry) |
2597 | 如果此条件成立可能性小(为编译器优化)(hash != hash)则转到:mismatch |
2599 | 如果此条件成立可能性小(为编译器优化)( parent directory != parent)则转到:mismatch |
2601 | 如果此条件成立可能性小(为编译器优化)(目录项存在于哈希中)则转到:mismatch |
2603 | 如果此条件成立可能性小(为编译器优化)(!d_same_name(dentry, parent, name))则转到:mismatch |
2606 | 自旋锁解锁 |
2608 | 返回:dentry |
2613 | in-lookup ones only 等于wq |
2615 | hlist_bl_unlock(b) |
2616 | 返回:new |
2617 | mismatch : |
2618 | 自旋锁解锁 |
2620 | 转到:retry |
名称 | 描述 |
---|---|
lookup_open | Look up and maybe create and open the last component |
d_add_ci | d_add_ci - lookup or allocate new dentry with case-exact name*@inode: the inode case-insensitive lookup has found*@dentry: the negative dentry that was passed to the parent's lookup func*@name: the case-exact name to be associated with the returned |
源代码转换工具 开放的插件接口 | X |
---|---|
支持:c/c++/esqlc/java Oracle/Informix/Mysql 插件可实现:逻辑报告 代码生成和批量转换代码 |