ISGID
if ((ip->i_mode & ISGID) && !groupmember(ip->i_gid, cnp->cn_cred)) {
ip->i_mode &= ~ISGID;
if ((ip->i_mode & (ISUID | ISGID)) && resid > uio->uio_resid &&
ip->i_mode &= ~(ISUID | ISGID);
if (!groupmember(ip->i_gid, cred) && (mode & ISGID)) {
if ((ip->i_mode & (ISUID | ISGID)) && (ouid != uid || ogid != gid)) {
ip->i_mode &= ~(ISUID | ISGID);
if ((inode->i_mode & (ISUID | ISGID)) &&
inode->i_mode &= ~(ISUID | ISGID);
if (!groupmember(inode->n_gid, cred) && (mode & ISGID)) {
if ((ip->i_mode & (ISUID | ISGID)) && resid > uio->uio_resid &&
UFS_INODE_SET_MODE(ip, ip->i_mode & ~(ISUID | ISGID));
if ((ip->i_mode & (ISUID | ISGID)) && resid > uio->uio_resid && ucred) {
UFS_INODE_SET_MODE(ip, ip->i_mode & ~(ISUID | ISGID));
if ((ip->i_mode & (ISUID | ISGID)) && (ouid != uid || ogid != gid)) {
UFS_INODE_SET_MODE(ip, ip->i_mode & ~(ISUID | ISGID));
if ((ip->i_mode & ISGID) && !groupmember(ip->i_gid, cnp->cn_cred) &&
UFS_INODE_SET_MODE(ip, ip->i_mode & ~ISGID);
if (!groupmember(ip->i_gid, cred) && (mode & ISGID)) {