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()
66 int setattr_should_drop_suidgid(struct mnt_idmap *idmap, in setattr_should_drop_suidgid() argument
76 kill |= setattr_should_drop_sgid(idmap, inode); in setattr_should_drop_suidgid()
97 static bool chown_ok(struct mnt_idmap *idmap, in chown_ok() argument
100 vfsuid_t vfsuid = i_uid_into_vfsuid(idmap, inode); in chown_ok()
104 if (capable_wrt_inode_uidgid(idmap, inode, CAP_CHOWN)) in chown_ok()
124 static bool chgrp_ok(struct mnt_idmap *idmap, in chgrp_ok() argument
127 vfsgid_t vfsgid = i_gid_into_vfsgid(idmap, inode); in chgrp_ok()
128 vfsuid_t vfsuid = i_uid_into_vfsuid(idmap, inode); in chgrp_ok()
135 if (capable_wrt_inode_uidgid(idmap, inode, CAP_CHOWN)) in chgrp_ok()
164 int setattr_prepare(struct mnt_idmap *idmap, struct dentry *dentry, in setattr_prepare() argument
186 !chown_ok(idmap, inode, attr->ia_vfsuid)) in setattr_prepare()
191 !chgrp_ok(idmap, inode, attr->ia_vfsgid)) in setattr_prepare()
198 if (!inode_owner_or_capable(idmap, inode)) in setattr_prepare()
204 vfsgid = i_gid_into_vfsgid(idmap, inode); in setattr_prepare()
207 if (!in_group_or_capable(idmap, inode, vfsgid)) in setattr_prepare()
213 if (!inode_owner_or_capable(idmap, inode)) in setattr_prepare()
222 error = security_inode_killpriv(idmap, dentry); in setattr_prepare()
302 void setattr_copy(struct mnt_idmap *idmap, struct inode *inode, in setattr_copy() argument
307 i_uid_update(idmap, attr, inode); in setattr_copy()
308 i_gid_update(idmap, attr, inode); in setattr_copy()
317 if (!in_group_or_capable(idmap, inode, in setattr_copy()
318 i_gid_into_vfsgid(idmap, inode))) in setattr_copy()
325 int may_setattr(struct mnt_idmap *idmap, struct inode *inode, in may_setattr() argument
343 if (!inode_owner_or_capable(idmap, inode)) { in may_setattr()
344 error = inode_permission(idmap, inode, MAY_WRITE); in may_setattr()
380 int notify_change(struct mnt_idmap *idmap, struct dentry *dentry, in notify_change() argument
391 error = may_setattr(idmap, inode, ia_valid); in notify_change()
456 !vfsuid_has_fsmapping(idmap, inode->i_sb->s_user_ns, in notify_change()
460 !vfsgid_has_fsmapping(idmap, inode->i_sb->s_user_ns, in notify_change()
468 !vfsuid_valid(i_uid_into_vfsuid(idmap, inode))) in notify_change()
471 !vfsgid_valid(i_gid_into_vfsgid(idmap, inode))) in notify_change()
474 error = security_inode_setattr(idmap, dentry, attr); in notify_change()
482 error = inode->i_op->setattr(idmap, dentry, attr); in notify_change()
484 error = simple_setattr(idmap, dentry, attr); in notify_change()
488 ima_inode_post_setattr(idmap, dentry); in notify_change()