函数逻辑报告 |
Source Code:fs\namei.c |
Create Date:2022-07-29 10:35:11 |
| Last Modify:2020-03-12 14:18:49 | Copyright©Brick |
| 首页 | 函数Tree |
| 注解内核,赢得工具 | 下载SCCT | English |
函数名称:vfs_link - create a new link*@old_dentry: object to be linked*@dir: new parent*@new_dentry: where to create the new link*@delegated_inode: returns inode needing a delegation break* The caller must hold dir->i_mutex* If vfs_link discovers a delegation on
函数原型:int vfs_link(struct dentry *old_dentry, struct inode *dir, struct dentry *new_dentry, struct inode **delegated_inode)
返回类型:int
参数:
| 类型 | 参数 | 名称 |
|---|---|---|
| struct dentry * | old_dentry | |
| struct inode * | dir | |
| struct dentry * | new_dentry | |
| struct inode ** | delegated_inode |
| 4141 | max_links等于s_max_links |
| 4157 | 如果IS_APPEND(inode)或IS_IMMUTABLE(inode)则返回:负EPERM |
| 4164 | 如果HAS_UNMAPPED_ID(inode)则返回:负EPERM |
| 4171 | error等于security_inode_link(old_dentry, dir, new_dentry) |
| 4175 | inode_lock(inode) |
| 4177 | 如果i_nlink恒等于0且非Misc 按位与I_LINKABLE的值则error等于负ENOENT |
| 4181 | 否则 |
| 4182 | error等于try_break_deleg(inode, delegated_inode) |
| 4183 | 如果非error则error等于link(old_dentry, dir, new_dentry) |
| 4187 | 如果非error且Misc 按位与I_LINKABLE则 |
| 4192 | inode_unlock(inode) |
| 4193 | 如果非error则snotify_link - new hardlink in 'inode' directory* Note: We have to pass also the linked inode ptr as some filesystems leave |
| 4195 | 返回:error |
| 名称 | 描述 |
|---|---|
| do_linkat | Hardlinks are often used in delicate situations. We avoid* security-related surprises by not following symlinks on the* newname. --KAB* We don't follow them on the oldname either to be compatible* with linux 2.0, and to avoid hard-linking to directories |
| 源代码转换工具 开放的插件接口 | X |
|---|---|
| 支持:c/c++/esqlc/java Oracle/Informix/Mysql 插件可实现:逻辑报告 代码生成和批量转换代码 |