|
@@ -1613,7 +1613,7 @@ static int may_create(struct inode *dir,
|
|
|
if (rc)
|
|
|
return rc;
|
|
|
|
|
|
- if (!newsid || sbsec->behavior == SECURITY_FS_USE_MNTPOINT) {
|
|
|
+ if (!newsid || !(sbsec->flags & SE_SBLABELSUPP)) {
|
|
|
rc = security_transition_sid(sid, dsec->sid, tclass, &newsid);
|
|
|
if (rc)
|
|
|
return rc;
|
|
@@ -2597,7 +2597,7 @@ static int selinux_inode_init_security(struct inode *inode, struct inode *dir,
|
|
|
sid = tsec->sid;
|
|
|
newsid = tsec->create_sid;
|
|
|
|
|
|
- if (!newsid || sbsec->behavior == SECURITY_FS_USE_MNTPOINT) {
|
|
|
+ if (!newsid || !(sbsec->flags & SE_SBLABELSUPP)) {
|
|
|
rc = security_transition_sid(sid, dsec->sid,
|
|
|
inode_mode_to_security_class(inode->i_mode),
|
|
|
&newsid);
|
|
@@ -2619,7 +2619,7 @@ static int selinux_inode_init_security(struct inode *inode, struct inode *dir,
|
|
|
isec->initialized = 1;
|
|
|
}
|
|
|
|
|
|
- if (!ss_initialized || sbsec->behavior == SECURITY_FS_USE_MNTPOINT)
|
|
|
+ if (!ss_initialized || !(sbsec->flags & SE_SBLABELSUPP))
|
|
|
return -EOPNOTSUPP;
|
|
|
|
|
|
if (name) {
|
|
@@ -2796,7 +2796,7 @@ static int selinux_inode_setxattr(struct dentry *dentry, const char *name,
|
|
|
return selinux_inode_setotherxattr(dentry, name);
|
|
|
|
|
|
sbsec = inode->i_sb->s_security;
|
|
|
- if (sbsec->behavior == SECURITY_FS_USE_MNTPOINT)
|
|
|
+ if (!(sbsec->flags & SE_SBLABELSUPP))
|
|
|
return -EOPNOTSUPP;
|
|
|
|
|
|
if (!is_owner_or_cap(inode))
|