函数逻辑报告

Linux Kernel

v5.5.9

Brick Technologies Co., Ltd

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

函数名称:mount_lock must be held* namespace_sem must be held for write

函数原型:static void umount_tree(struct mount *mnt, enum umount_tree_flags how)

返回类型:void

参数:

类型参数名称
struct mount *mnt
enum umount_tree_flagshow
1429  LIST_HEAD(tmp_list)
1432  如果how按位与UMOUNT_PROPAGATEClear MNT_LOCKED when it can be shown to be safe.* mount_lock lock must be held for write
1436 p循环
1437  mnt_flags或等于MNT_UMOUNT
1438  链表项移动到头部
1443  删除链表项并重新初始化
1447  如果how按位与UMOUNT_PROPAGATEllect all mounts that receive propagation from the mount in @list,* and return these additional mounts in the same list.*@list: the list of mounts to be unmounted.* vfsmount lock must be held for write
1450  当非链表为空循环
1453  p等于list_first_entry - get the first element from a list*@ptr: the list head to take the element from.*@type: the type of the struct this is embedded in.*@member: the name of the list_head within the struct.* Note, that list is expected to be not empty.( & tmp_list, structmount, mnt_list)
1454  删除链表项并重新初始化
1455  删除链表项并重新初始化
1456  ns等于 containing namespace
1457  如果ns
1461  containing namespace = NULL
1462  如果how按位与UMOUNT_SYNCmnt_flags或等于MNT_SYNC_UMOUNT
1465  disconnect等于disconnect_mount(p, how)
1466  如果mnt_has_parent(p)则
1468  如果非disconnect
1471  否则
1475  vfsmount lock must be held for write
1476  如果disconnecthlist_add_head( & mnt_umount, & unmounted)
调用者
名称描述
do_umount
__detach_mounts__detach_mounts - lazily unmount all mounts on the specified dentry* During unlink, rmdir, and d_drop it is possible to loose the path* to an existing mountpoint, and wind up leaking the mount
copy_tree
dissolve_on_fput
drop_collected_mounts
attach_recursive_mnt@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
do_loopbackdo loopback mount.
mark_mounts_for_expiryprocess a list of expirable mountpoints with the intent of discarding any* mountpoints that aren't in use and haven't been touched since last we came* here
shrink_submounts