Messages in this thread Patch in this message | | | Date | Mon, 10 Sep 2007 10:52:52 -0400 | From | Jeff Layton <> | Subject | [PATCH 7/7] CIFS: ignore mode change if it's just for clearing setuid/setgid bits |
| |
If the ATTR_KILL_S*ID bits are set then any mode change is only for clearing the setuid/setgid bits. For CIFS, skip the mode change and let the server handle it.
Signed-off-by: Jeff Layton <jlayton@redhat.com> --- fs/cifs/inode.c | 5 +++++ 1 files changed, 5 insertions(+), 0 deletions(-)
diff --git a/fs/cifs/inode.c b/fs/cifs/inode.c index 66436f5..8fa3d63 100644 --- a/fs/cifs/inode.c +++ b/fs/cifs/inode.c @@ -1547,6 +1547,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; -- 1.5.2.1 - To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/
| |