S_ISGID
if ((mode & S_ISGID) == S_ISGID)
res |= S_ISGID;
if (dir->i_mode & S_ISGID)
omode |= S_ISGID;
if (dir_inode->i_mode & S_ISGID) {
attr->ia_mode &= ~S_ISGID;
mode &= ~S_ISGID;
if (!(mode & S_ISGID))
if (mode & S_ISGID) {
attr->ia_mode &= ~S_ISGID;
u32 valid_mask = (S_IFMT | S_ISUID | S_ISGID | S_ISVTX | 0777);
if (dir->i_mode & S_ISGID) {
mode |= S_ISGID;
mode &= ~S_ISGID;
if (!(mode & (S_ISUID|S_ISGID)))
if ((mode & (S_ISGID | S_IXGRP)) == (S_ISGID | S_IXGRP)) {
if (donor_inode->i_mode & (S_ISUID|S_ISGID)) {
mode &= ~S_ISGID;
mode &= ~S_ISGID;
if ((inode->i_mode & (S_ISGID | S_IXGRP)) == (S_ISGID | S_IXGRP)) {
attr->ia_mode &= ~S_ISGID;
if (dip->i_inode.i_mode & S_ISGID) {
inode->i_mode |= S_ISGID;
if (dir && dir->i_mode & S_ISGID) {
mode |= S_ISGID;
if ((mode & (S_ISGID | S_IXGRP)) != (S_ISGID | S_IXGRP))
if (S_ISDIR(mode) || !dir || !(dir->i_mode & S_ISGID))
return mode & ~S_ISGID;
if (dir_i->i_mode & S_ISGID) {
mode |= S_ISGID;
if (parent->mode & S_ISGID) {
mode |= S_ISGID;
if ((mode & (S_ISGID | S_IXGRP)) == (S_ISGID | S_IXGRP))
inode->i_mode &= ~S_ISGID;
if (unlikely((mode & S_ISGID) && (mode & S_IXGRP)))
(inode->i_mode & (S_ISUID|S_ISGID)))
iap->ia_mode &= ~S_ISGID;
if ((inode->i_mode & S_ISGID) && (inode->i_mode & S_IXGRP))
inode->i_mode &= ~S_ISGID;
perm_mode |= S_ISGID;
S_ISGID, S_ISUID
if (unlikely(inode->i_mode & S_ISGID) && type == ACL_TYPE_ACCESS &&
mode &= ~S_ISGID;
inode->i_mode &= ~(S_ISUID | S_ISGID);
if (inode->i_mode & S_ISGID)
if (inode->i_mode & S_ISGID)
if (parent->i_mode & S_ISGID)
mode |= S_ISGID;
if (parent->i_mode & S_ISGID)
if (inode->i_mode & S_ISGID)
#define SFBITS_MASK (S_ISVTX | S_ISGID | S_ISUID) /* SETFILEBITS valid bits */
mode |= (wire & POSIX_SET_GID) ? S_ISGID : 0;
mode &= ~S_ISGID;
((flags & ICBTAG_FLAG_SETGID) ? S_ISGID : 0) |
((inode->i_mode & S_ISGID) ? ICBTAG_FLAG_SETGID : 0) |
if (dir && !(dir->i_mode & S_ISGID) && xfs_has_grpid(mp)) {
VFS_I(sc->ip)->i_mode &= ~(S_ISUID | S_ISGID);
inode->i_mode &= ~(S_ISUID | S_ISGID | S_ISVTX);
(xfs_has_grpid((pip)->i_mount) || (VFS_I(pip)->i_mode & S_ISGID))
if ((VFS_I(ip)->i_mode & (S_ISUID|S_ISGID)) &&
VFS_I(ip)->i_mode &= ~(S_ISUID|S_ISGID);
VFS_I(ip)->i_mode &= ~S_ISGID;
return mode & (S_ISUID | S_ISGID);
#define S_IALLUGO (S_ISUID|S_ISGID|S_ISVTX|S_IRWXUGO)
#define S_ALL_PERM (S_ISUID | S_ISGID | S_ISVTX | \
value = S_ISGID;
#define S_IALLUGO (S_ISUID|S_ISGID|S_ISVTX|S_IRWXUGO)
if (chmod("validate_cap_sgidroot", S_ISGID | 0710) != 0)
if (chmod("validate_cap_sgidnonroot", S_ISGID | 0710) != 0)