diff --git a/[refs] b/[refs] index 52812af88eb6..6d28bc966fdf 100644 --- a/[refs] +++ b/[refs] @@ -1,2 +1,2 @@ --- -refs/heads/master: 188b95dd8ecb02dd6c6e5534cddc5a89aa4e2852 +refs/heads/master: d32c4f2626acc385d5187bd5c0c24f442328dc60 diff --git a/trunk/fs/cifs/inode.c b/trunk/fs/cifs/inode.c index dd4167762a8e..279f3c5e0ce3 100644 --- a/trunk/fs/cifs/inode.c +++ b/trunk/fs/cifs/inode.c @@ -1538,6 +1538,11 @@ int cifs_setattr(struct dentry *direntry, struct iattr *attrs) } time_buf.Attributes = 0; + + /* skip mode change if it's just for clearing setuid/setgid */ + if (attrs->ia_valid & (ATTR_KILL_SUID|ATTR_KILL_SGID)) + attrs->ia_valid &= ~ATTR_MODE; + if (attrs->ia_valid & ATTR_MODE) { cFYI(1, ("Mode changed to 0x%x", attrs->ia_mode)); mode = attrs->ia_mode;