diff --git a/fs/incfs/vfs.c b/fs/incfs/vfs.c index 776640451f6f..b46e11963c72 100644 --- a/fs/incfs/vfs.c +++ b/fs/incfs/vfs.c @@ -1600,6 +1600,10 @@ static int incfs_setattr(struct dentry *dentry, struct iattr *ia) backing_inode = d_inode(backing_dentry); + if ((ia->ia_valid & (ATTR_KILL_SUID|ATTR_KILL_SGID)) && + (ia->ia_valid & ATTR_MODE)) + return -EINVAL; + /* incfs files are readonly, but the backing files must be writeable */ if (S_ISREG(backing_inode->i_mode)) { if ((ia->ia_valid & ATTR_MODE) && (ia->ia_mode & 0222))