Lines Matching refs:idmap

37 int setattr_should_drop_sgid(struct mnt_idmap *idmap,  in setattr_should_drop_sgid()  argument
46 if (!in_group_or_capable(idmap, inode, i_gid_into_vfsgid(idmap, inode))) in setattr_should_drop_sgid()
67 int setattr_should_drop_suidgid(struct mnt_idmap *idmap, in setattr_should_drop_suidgid() argument
77 kill |= setattr_should_drop_sgid(idmap, inode); in setattr_should_drop_suidgid()
98 static bool chown_ok(struct mnt_idmap *idmap, in chown_ok() argument
101 vfsuid_t vfsuid = i_uid_into_vfsuid(idmap, inode); in chown_ok()
105 if (capable_wrt_inode_uidgid(idmap, inode, CAP_CHOWN)) in chown_ok()
125 static bool chgrp_ok(struct mnt_idmap *idmap, in chgrp_ok() argument
128 vfsgid_t vfsgid = i_gid_into_vfsgid(idmap, inode); in chgrp_ok()
129 vfsuid_t vfsuid = i_uid_into_vfsuid(idmap, inode); in chgrp_ok()
136 if (capable_wrt_inode_uidgid(idmap, inode, CAP_CHOWN)) in chgrp_ok()
165 int setattr_prepare(struct mnt_idmap *idmap, struct dentry *dentry, in setattr_prepare() argument
187 !chown_ok(idmap, inode, attr->ia_vfsuid)) in setattr_prepare()
192 !chgrp_ok(idmap, inode, attr->ia_vfsgid)) in setattr_prepare()
199 if (!inode_owner_or_capable(idmap, inode)) in setattr_prepare()
205 vfsgid = i_gid_into_vfsgid(idmap, inode); in setattr_prepare()
208 if (!in_group_or_capable(idmap, inode, vfsgid)) in setattr_prepare()
214 if (!inode_owner_or_capable(idmap, inode)) in setattr_prepare()
223 error = security_inode_killpriv(idmap, dentry); in setattr_prepare()
303 void setattr_copy(struct mnt_idmap *idmap, struct inode *inode, in setattr_copy() argument
308 i_uid_update(idmap, attr, inode); in setattr_copy()
309 i_gid_update(idmap, attr, inode); in setattr_copy()
318 if (!in_group_or_capable(idmap, inode, in setattr_copy()
319 i_gid_into_vfsgid(idmap, inode))) in setattr_copy()
326 int may_setattr(struct mnt_idmap *idmap, struct inode *inode, in may_setattr() argument
344 if (!inode_owner_or_capable(idmap, inode)) { in may_setattr()
345 error = inode_permission(idmap, inode, MAY_WRITE); in may_setattr()
381 int notify_change(struct mnt_idmap *idmap, struct dentry *dentry, in notify_change() argument
392 error = may_setattr(idmap, inode, ia_valid); in notify_change()
473 !vfsuid_has_fsmapping(idmap, inode->i_sb->s_user_ns, in notify_change()
477 !vfsgid_has_fsmapping(idmap, inode->i_sb->s_user_ns, in notify_change()
485 !vfsuid_valid(i_uid_into_vfsuid(idmap, inode))) in notify_change()
488 !vfsgid_valid(i_gid_into_vfsgid(idmap, inode))) in notify_change()
491 error = security_inode_setattr(idmap, dentry, attr); in notify_change()
499 error = inode->i_op->setattr(idmap, dentry, attr); in notify_change()
501 error = simple_setattr(idmap, dentry, attr); in notify_change()
505 ima_inode_post_setattr(idmap, dentry); in notify_change()