Lines Matching refs:idmap
33 int setattr_should_drop_sgid(struct mnt_idmap *idmap, in setattr_should_drop_sgid() argument
42 if (!in_group_or_capable(idmap, inode, i_gid_into_vfsgid(idmap, inode))) in setattr_should_drop_sgid()
63 int setattr_should_drop_suidgid(struct mnt_idmap *idmap, in setattr_should_drop_suidgid() argument
73 kill |= setattr_should_drop_sgid(idmap, inode); in setattr_should_drop_suidgid()
94 static bool chown_ok(struct mnt_idmap *idmap, in chown_ok() argument
97 vfsuid_t vfsuid = i_uid_into_vfsuid(idmap, inode); in chown_ok()
101 if (capable_wrt_inode_uidgid(idmap, inode, CAP_CHOWN)) in chown_ok()
121 static bool chgrp_ok(struct mnt_idmap *idmap, in chgrp_ok() argument
124 vfsgid_t vfsgid = i_gid_into_vfsgid(idmap, inode); in chgrp_ok()
125 vfsuid_t vfsuid = i_uid_into_vfsuid(idmap, inode); in chgrp_ok()
132 if (capable_wrt_inode_uidgid(idmap, inode, CAP_CHOWN)) in chgrp_ok()
161 int setattr_prepare(struct mnt_idmap *idmap, struct dentry *dentry, in setattr_prepare() argument
183 !chown_ok(idmap, inode, attr->ia_vfsuid)) in setattr_prepare()
188 !chgrp_ok(idmap, inode, attr->ia_vfsgid)) in setattr_prepare()
195 if (!inode_owner_or_capable(idmap, inode)) in setattr_prepare()
201 vfsgid = i_gid_into_vfsgid(idmap, inode); in setattr_prepare()
204 if (!in_group_or_capable(idmap, inode, vfsgid)) in setattr_prepare()
210 if (!inode_owner_or_capable(idmap, inode)) in setattr_prepare()
219 error = security_inode_killpriv(idmap, dentry); in setattr_prepare()
299 void setattr_copy(struct mnt_idmap *idmap, struct inode *inode, in setattr_copy() argument
304 i_uid_update(idmap, attr, inode); in setattr_copy()
305 i_gid_update(idmap, attr, inode); in setattr_copy()
314 if (!in_group_or_capable(idmap, inode, in setattr_copy()
315 i_gid_into_vfsgid(idmap, inode))) in setattr_copy()
322 int may_setattr(struct mnt_idmap *idmap, struct inode *inode, in may_setattr() argument
340 if (!inode_owner_or_capable(idmap, inode)) { in may_setattr()
341 error = inode_permission(idmap, inode, MAY_WRITE); in may_setattr()
377 int notify_change(struct mnt_idmap *idmap, struct dentry *dentry, in notify_change() argument
388 error = may_setattr(idmap, inode, ia_valid); in notify_change()
469 !vfsuid_has_fsmapping(idmap, inode->i_sb->s_user_ns, in notify_change()
473 !vfsgid_has_fsmapping(idmap, inode->i_sb->s_user_ns, in notify_change()
481 !vfsuid_valid(i_uid_into_vfsuid(idmap, inode))) in notify_change()
484 !vfsgid_valid(i_gid_into_vfsgid(idmap, inode))) in notify_change()
487 error = security_inode_setattr(idmap, dentry, attr); in notify_change()
503 error = inode->i_op->setattr(idmap, dentry, attr); in notify_change()
505 error = simple_setattr(idmap, dentry, attr); in notify_change()
509 security_inode_post_setattr(idmap, dentry, ia_valid); in notify_change()