X-Git-Url: http://plrg.eecs.uci.edu/git/?a=blobdiff_plain;f=fs%2Fattr.c;h=f8dfc2269d85634aa61ebb19a761e986ea0bbc93;hb=65cb9b47e0ea568a7a38cce7773052a6ea093629;hp=a0a0c7b07ba3908379d311931254cc5ba9b2d014;hpb=4750def52cb2c21732dda9aa1d43a07db37b0186;p=firefly-linux-kernel-4.4.55.git diff --git a/fs/attr.c b/fs/attr.c index a0a0c7b07ba3..f8dfc2269d85 100644 --- a/fs/attr.c +++ b/fs/attr.c @@ -42,7 +42,7 @@ int inode_change_ok(struct inode *inode, struct iattr *attr) /* Make sure a caller can chmod. */ if (ia_valid & ATTR_MODE) { - if ((current->fsuid != inode->i_uid) && !capable(CAP_FOWNER)) + if (!is_owner_or_cap(inode)) goto error; /* Also check the setgid bit! */ if (!in_group_p((ia_valid & ATTR_GID) ? attr->ia_gid : @@ -52,7 +52,7 @@ int inode_change_ok(struct inode *inode, struct iattr *attr) /* Check for setting the inode time. */ if (ia_valid & (ATTR_MTIME_SET | ATTR_ATIME_SET)) { - if (current->fsuid != inode->i_uid && !capable(CAP_FOWNER)) + if (!is_owner_or_cap(inode)) goto error; } fine: