Skip to content

Commit 90593ca

Browse files
committed
selinux: reduce the object class calculations at inode init time
We only need to call inode_mode_to_security_class() once in selinux_inode_init_security(). Reviewed-by: Stephen Smalley <[email protected]> Signed-off-by: Paul Moore <[email protected]>
1 parent 6613476 commit 90593ca

File tree

1 file changed

+4
-5
lines changed

1 file changed

+4
-5
lines changed

security/selinux/hooks.c

Lines changed: 4 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -2920,23 +2920,22 @@ static int selinux_inode_init_security(struct inode *inode, struct inode *dir,
29202920
struct superblock_security_struct *sbsec;
29212921
struct xattr *xattr = lsm_get_xattr_slot(xattrs, xattr_count);
29222922
u32 newsid, clen;
2923+
u16 newsclass;
29232924
int rc;
29242925
char *context;
29252926

29262927
sbsec = selinux_superblock(dir->i_sb);
29272928

29282929
newsid = tsec->create_sid;
2929-
2930-
rc = selinux_determine_inode_label(tsec, dir, qstr,
2931-
inode_mode_to_security_class(inode->i_mode),
2932-
&newsid);
2930+
newsclass = inode_mode_to_security_class(inode->i_mode);
2931+
rc = selinux_determine_inode_label(tsec, dir, qstr, newsclass, &newsid);
29332932
if (rc)
29342933
return rc;
29352934

29362935
/* Possibly defer initialization to selinux_complete_init. */
29372936
if (sbsec->flags & SE_SBINITIALIZED) {
29382937
struct inode_security_struct *isec = selinux_inode(inode);
2939-
isec->sclass = inode_mode_to_security_class(inode->i_mode);
2938+
isec->sclass = newsclass;
29402939
isec->sid = newsid;
29412940
isec->initialized = LABEL_INITIALIZED;
29422941
}

0 commit comments

Comments
 (0)