函数逻辑报告

Linux Kernel

v5.5.9

Brick Technologies Co., Ltd

Source Code:security\selinux\hooks.c Create Date:2022-07-27 20:27:33
Last Modify:2020-03-12 14:18:49 Copyright©Brick
首页 函数Tree
注解内核,赢得工具下载SCCTEnglish

函数名称:inode_doinit_with_dentry

函数原型:static int inode_doinit_with_dentry(struct inode *inode, struct dentry *opt_dentry)

返回类型:int

参数:

类型参数名称
struct inode *inode
struct dentry *opt_dentry
1433  struct superblock_security_struct * sbsec = NULL
1434  isec等于selinux_inode(inode)
1435  sid等于0
1438  rc等于0
1440  如果 initialization flag 恒等于 initialized 则返回:0
1443  加自旋锁
1444  如果 initialization flag 恒等于 initialized 则转到:out_unlock
1447  如果 security class of this object 恒等于SECCLASS_FILE security class of this object 等于inode_mode_to_security_class(i_mode)
1450  sbsec等于s_security
1451  如果非 which mount options were specified 按位与Non-mount related flags 的值则
1455  加自旋锁
1456  如果链表为空添加链表项
1458  自旋锁解锁
1459  转到:out_unlock
1462  sclass等于 security class of this object
1463  task_sid等于 SID of creating task
1464  sid等于 SID of this object
1465  initialization flag 等于LABEL_PENDING
1466  自旋锁解锁
1469  : labeling behavior 恒等于use native label support
1470  退出
1471  : labeling behavior 恒等于use xattr
1472  如果非i_opflags按位与IOP_XATTR的值则
1474  退出
1478  如果opt_dentry
1481  否则
1489  如果非dentrydentry等于d_find_any_alias(inode)
1492  如果非dentry
1502  转到:out
1505  rc等于inode_doinit_use_xattr(inode, dentry, default SID for labeling , & sid)
1507  dput(dentry)
1508  如果rc则转到:out
1510  退出
1511  : labeling behavior 恒等于use task SIDs, e.g. pipefs/sockfs
1512  sid等于task_sid
1513  退出
1514  : labeling behavior 恒等于use transition SIDs, e.g. devpts/tmpfs
1516  sid等于 SID of file system superblock
1519  rc等于security_transition_sid( & selinux_state, task_sid, sid, sclass, NULL, & sid)
1521  如果rc则转到:out
1523  退出
1524  : labeling behavior 恒等于use mountpoint labeling
1525  sid等于 SECURITY_FS_USE_MNTPOINT context for files
1526  退出
1527  默认
1529  sid等于 SID of file system superblock
1534  如果opt_dentry
1538  否则
1556  如果非dentry则转到:out
1560  如果rc
1561  dput(dentry)
1562  转到:out
1569  如果rc
1570  dput(dentry)
1571  转到:out
1574  dput(dentry)
1576  退出
1579  out :
1580  加自旋锁
1581  如果 initialization flag 恒等于LABEL_PENDING
1582  如果非sidrc
1584  转到:out_unlock
1587  initialization flag 等于 initialized
1588  SID of this object 等于sid
1591  out_unlock :
1592  自旋锁解锁
1593  返回:rc
调用者
名称描述
__inode_security_revalidateTry reloading inode security labels that have been marked as invalid. The*@may_sleep parameter indicates when sleeping and thus reloading labels is* allowed; when set to false, returns -ECHILD when the label is* invalid
inode_doinit
sb_finish_set_opts
selinux_d_instantiate