函数逻辑报告 |
Source Code:fs\namespace.c |
Create Date:2022-07-29 10:39:36 |
Last Modify:2020-03-12 14:18:49 | Copyright©Brick |
首页 | 函数Tree |
注解内核,赢得工具 | 下载SCCT | English |
函数名称:@source_mnt : mount tree to be attached*@nd : place the mount tree @source_mnt is attached*@parent_nd : if non-null, detach the source_mnt from its parent and* store the parent mount and mountpoint dentry
函数原型:static int attach_recursive_mnt(struct mount *source_mnt, struct mount *dest_mnt, struct mountpoint *dest_mp, bool moving)
返回类型:int
参数:
类型 | 参数 | 名称 |
---|---|---|
struct mount * | source_mnt | |
struct mount * | dest_mnt | |
struct mountpoint * | dest_mp | |
bool | moving |
2047 | ns等于 containing namespace |
2056 | smp等于get_mountpoint( root of the mounted tree ) |
2061 | 如果非moving则 |
2062 | err等于count_mounts(ns, source_mnt) |
2067 | 如果IS_MNT_SHARED(dest_mnt)则 |
2068 | err等于invent_group_ids(source_mnt, true) |
2071 | err等于propagate_mnt(dest_mnt, dest_mp, source_mnt, & tree_list) |
2072 | lock_mount_hash() |
2073 | 如果err则转到:out_cleanup_ids |
2075 | 以p循环set_mnt_shared(p) |
2077 | 否则 |
2078 | lock_mount_hash() |
2080 | 如果moving则 |
2084 | 否则 |
2085 | 如果 containing namespace 则 |
2087 | 删除链表项并重新初始化 |
2095 | hlist_del_init( & mnt_hash) |
2098 | 如果q则mnt_change_mountpoint(child, smp, q) |
2101 | 如果user_ns不等于user_ns则lock_mnt_tree(child) |
2103 | mnt_flags与等于MNT_LOCKED的反 |
2107 | unlock_mount_hash() |
2109 | 返回:0 |
2111 | out_cleanup_ids : |
2112 | 当非hlist_empty( & tree_list)循环 |
2113 | child等于hlist_entry(first, structmount, mnt_hash) |
2114 | pending_mounts等于0 |
2117 | unlock_mount_hash() |
2118 | cleanup_group_ids(source_mnt, NULL) |
2119 | out : |
2120 | pending_mounts等于0 |
2126 | 返回:err |
名称 | 描述 |
---|---|
graft_tree | |
do_move_mount |
源代码转换工具 开放的插件接口 | X |
---|---|
支持:c/c++/esqlc/java Oracle/Informix/Mysql 插件可实现:逻辑报告 代码生成和批量转换代码 |