X-Git-Url: http://pileus.org/git/?a=blobdiff_plain;f=fs%2Fattr.c;h=584620e5dee52b5be4a456fb0572a5227a0ef534;hb=c217a2a004d98d09dfceec3a023c563ed800e833;hp=73f69a6ce9edd380581954f9ce1bc15633bfced0;hpb=e644dae645e167d154c0526358940986682a72b0;p=~andy%2Flinux diff --git a/fs/attr.c b/fs/attr.c index 73f69a6ce9e..584620e5dee 100644 --- a/fs/attr.c +++ b/fs/attr.c @@ -47,14 +47,14 @@ int inode_change_ok(const struct inode *inode, struct iattr *attr) /* Make sure a caller can chown. */ if ((ia_valid & ATTR_UID) && - (current_fsuid() != inode->i_uid || - attr->ia_uid != inode->i_uid) && !capable(CAP_CHOWN)) + (!uid_eq(current_fsuid(), inode->i_uid) || + !uid_eq(attr->ia_uid, inode->i_uid)) && !capable(CAP_CHOWN)) return -EPERM; /* Make sure caller can chgrp. */ if ((ia_valid & ATTR_GID) && - (current_fsuid() != inode->i_uid || - (!in_group_p(attr->ia_gid) && attr->ia_gid != inode->i_gid)) && + (!uid_eq(current_fsuid(), inode->i_uid) || + (!in_group_p(attr->ia_gid) && !gid_eq(attr->ia_gid, inode->i_gid))) && !capable(CAP_CHOWN)) return -EPERM;