sysfs: sysfs_setattr remove unnecessary permission check.
authorEric W. Biederman <ebiederm@maxwell.aristanetworks.com>
Sat, 21 Nov 2009 00:08:58 +0000 (16:08 -0800)
committerGreg Kroah-Hartman <gregkh@suse.de>
Fri, 11 Dec 2009 19:24:54 +0000 (11:24 -0800)
inode_change_ok already clears the SGID bit when necessary
so there is no reason for sysfs_setattr to carry code to do
the same, and it is good to kill the extra copy because when
I moved the code last in certain corner cases the code will
look at the wrong gid.

Acked-by: Serge Hallyn <serue@us.ibm.com>
Acked-by: Tejun Heo <tj@kernel.org>
Signed-off-by: Eric W. Biederman <ebiederm@aristanetworks.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
fs/sysfs/inode.c

index 9f783d4..220b758 100644 (file)
@@ -117,10 +117,6 @@ int sysfs_setattr(struct dentry *dentry, struct iattr *iattr)
                return error;
 
        iattr->ia_valid &= ~ATTR_SIZE; /* ignore size changes */
-       if (iattr->ia_valid & ATTR_MODE) {
-               if (!in_group_p(inode->i_gid) && !capable(CAP_FSETID))
-                       iattr->ia_mode &= ~S_ISGID;
-       }
 
        error = inode_setattr(inode, iattr);
        if (error)