Lines Matching refs:inode
270 static int inode_doinit_with_dentry(struct inode *inode, struct dentry *opt_dentry);
278 static int __inode_security_revalidate(struct inode *inode, in __inode_security_revalidate() argument
296 inode_doinit_with_dentry(inode, dentry); in __inode_security_revalidate()
300 static struct inode_security_struct *inode_security_novalidate(struct inode *inode) in inode_security_novalidate() argument
302 return selinux_inode(inode); in inode_security_novalidate()
305 static inline struct inode_security_struct *inode_security_rcu(struct inode *inode, in inode_security_rcu() argument
309 struct inode_security_struct *isec = selinux_inode(inode); in inode_security_rcu()
314 rc = __inode_security_revalidate(inode, NULL, !rcu); in inode_security_rcu()
323 static inline struct inode_security_struct *inode_security(struct inode *inode) in inode_security() argument
325 struct inode_security_struct *isec = selinux_inode(inode); in inode_security()
330 __inode_security_revalidate(inode, NULL, true); in inode_security()
344 struct inode *inode = d_backing_inode(dentry); in backing_inode_security() local
345 struct inode_security_struct *isec = selinux_inode(inode); in backing_inode_security()
350 __inode_security_revalidate(inode, dentry, true); in backing_inode_security()
354 static void inode_free_security(struct inode *inode) in inode_free_security() argument
356 struct inode_security_struct *isec = selinux_inode(inode); in inode_free_security()
361 sbsec = selinux_superblock(inode->i_sb); in inode_free_security()
514 struct inode *root_inode = d_backing_inode(root); in sb_check_xattr_support()
563 struct inode *root_inode = d_backing_inode(root); in sb_finish_set_opts()
596 struct inode *inode = isec->inode; in sb_finish_set_opts() local
599 inode = igrab(inode); in sb_finish_set_opts()
600 if (inode) { in sb_finish_set_opts()
601 if (!IS_PRIVATE(inode)) in sb_finish_set_opts()
602 inode_doinit_with_dentry(inode, NULL); in sb_finish_set_opts()
603 iput(inode); in sb_finish_set_opts()
1357 static int inode_doinit_use_xattr(struct inode *inode, struct dentry *dentry, in inode_doinit_use_xattr() argument
1371 rc = __vfs_getxattr(dentry, inode, XATTR_NAME_SELINUX, context, len); in inode_doinit_use_xattr()
1376 rc = __vfs_getxattr(dentry, inode, XATTR_NAME_SELINUX, NULL, 0); in inode_doinit_use_xattr()
1386 rc = __vfs_getxattr(dentry, inode, XATTR_NAME_SELINUX, in inode_doinit_use_xattr()
1393 __func__, -rc, inode->i_sb->s_id, inode->i_ino); in inode_doinit_use_xattr()
1403 char *dev = inode->i_sb->s_id; in inode_doinit_use_xattr()
1404 unsigned long ino = inode->i_ino; in inode_doinit_use_xattr()
1419 static int inode_doinit_with_dentry(struct inode *inode, struct dentry *opt_dentry) in inode_doinit_with_dentry() argument
1422 struct inode_security_struct *isec = selinux_inode(inode); in inode_doinit_with_dentry()
1436 isec->sclass = inode_mode_to_security_class(inode->i_mode); in inode_doinit_with_dentry()
1438 sbsec = selinux_superblock(inode->i_sb); in inode_doinit_with_dentry()
1463 if (!(inode->i_opflags & IOP_XATTR)) { in inode_doinit_with_dentry()
1479 dentry = d_find_alias(inode); in inode_doinit_with_dentry()
1481 dentry = d_find_any_alias(inode); in inode_doinit_with_dentry()
1496 rc = inode_doinit_use_xattr(inode, dentry, sbsec->def_sid, in inode_doinit_with_dentry()
1523 (!S_ISLNK(inode->i_mode) || in inode_doinit_with_dentry()
1536 dentry = d_find_alias(inode); in inode_doinit_with_dentry()
1538 dentry = d_find_any_alias(inode); in inode_doinit_with_dentry()
1559 (inode->i_opflags & IOP_XATTR)) { in inode_doinit_with_dentry()
1560 rc = inode_doinit_use_xattr(inode, dentry, in inode_doinit_with_dentry()
1668 struct inode *inode, in inode_has_perm() argument
1675 if (unlikely(IS_PRIVATE(inode))) in inode_has_perm()
1679 isec = selinux_inode(inode); in inode_has_perm()
1692 struct inode *inode = d_backing_inode(dentry); in dentry_has_perm() local
1693 struct inode_security_struct *isec = selinux_inode(inode); in dentry_has_perm()
1699 __inode_security_revalidate(inode, dentry, true); in dentry_has_perm()
1700 return inode_has_perm(cred, inode, av, &ad); in dentry_has_perm()
1711 struct inode *inode = d_backing_inode(path->dentry); in path_has_perm() local
1712 struct inode_security_struct *isec = selinux_inode(inode); in path_has_perm()
1718 __inode_security_revalidate(inode, path->dentry, true); in path_has_perm()
1719 return inode_has_perm(cred, inode, av, &ad); in path_has_perm()
1751 struct inode *inode = file_inode(file); in file_has_perm() local
1777 rc = inode_has_perm(cred, inode, av, &ad); in file_has_perm()
1788 struct inode *dir, in selinux_determine_inode_label()
1812 static int may_create(struct inode *dir, in may_create()
1856 static int may_link(struct inode *dir, in may_link()
1899 static inline int may_rename(struct inode *old_dir, in may_rename()
1901 struct inode *new_dir, in may_rename()
2025 struct inode *inode = file_inode(file); in open_file_to_av() local
2028 inode->i_sb->s_magic != SOCKFS_MAGIC) in open_file_to_av()
2308 struct inode *inode = file_inode(bprm->file); in selinux_bprm_creds_for_exec() local
2316 isec = inode_security(inode); in selinux_bprm_creds_for_exec()
2860 static int selinux_inode_alloc_security(struct inode *inode) in selinux_inode_alloc_security() argument
2862 struct inode_security_struct *isec = selinux_inode(inode); in selinux_inode_alloc_security()
2867 isec->inode = inode; in selinux_inode_alloc_security()
2876 static void selinux_inode_free_security(struct inode *inode) in selinux_inode_free_security() argument
2878 inode_free_security(inode); in selinux_inode_free_security()
2924 static int selinux_inode_init_security(struct inode *inode, struct inode *dir, in selinux_inode_init_security() argument
2939 newsclass = inode_mode_to_security_class(inode->i_mode); in selinux_inode_init_security()
2946 struct inode_security_struct *isec = selinux_inode(inode); in selinux_inode_init_security()
2969 static int selinux_inode_init_security_anon(struct inode *inode, in selinux_inode_init_security_anon() argument
2971 const struct inode *context_inode) in selinux_inode_init_security_anon()
2981 isec = selinux_inode(inode); in selinux_inode_init_security_anon()
3024 static int selinux_inode_create(struct inode *dir, struct dentry *dentry, umode_t mode) in selinux_inode_create()
3029 static int selinux_inode_link(struct dentry *old_dentry, struct inode *dir, struct dentry *new_dent… in selinux_inode_link()
3034 static int selinux_inode_unlink(struct inode *dir, struct dentry *dentry) in selinux_inode_unlink()
3039 static int selinux_inode_symlink(struct inode *dir, struct dentry *dentry, const char *name) in selinux_inode_symlink()
3044 static int selinux_inode_mkdir(struct inode *dir, struct dentry *dentry, umode_t mask) in selinux_inode_mkdir()
3049 static int selinux_inode_rmdir(struct inode *dir, struct dentry *dentry) in selinux_inode_rmdir()
3054 static int selinux_inode_mknod(struct inode *dir, struct dentry *dentry, umode_t mode, dev_t dev) in selinux_inode_mknod()
3059 static int selinux_inode_rename(struct inode *old_inode, struct dentry *old_dentry, in selinux_inode_rename()
3060 struct inode *new_inode, struct dentry *new_dentry) in selinux_inode_rename()
3072 static int selinux_inode_follow_link(struct dentry *dentry, struct inode *inode, in selinux_inode_follow_link() argument
3081 isec = inode_security_rcu(inode, rcu); in selinux_inode_follow_link()
3088 static noinline int audit_inode_permission(struct inode *inode, in audit_inode_permission() argument
3093 struct inode_security_struct *isec = selinux_inode(inode); in audit_inode_permission()
3096 ad.u.inode = inode; in audit_inode_permission()
3196 static int selinux_inode_permission(struct inode *inode, int requested) in selinux_inode_permission() argument
3216 isec = inode_security_rcu(inode, requested & MAY_NOT_BLOCK); in selinux_inode_permission()
3219 perms = file_mask_to_av(inode->i_mode, mask); in selinux_inode_permission()
3244 rc2 = audit_inode_permission(inode, perms, audited, denied, rc); in selinux_inode_permission()
3255 struct inode *inode = d_backing_inode(dentry); in selinux_inode_setattr() local
3272 inode->i_sb->s_magic != SOCKFS_MAGIC && in selinux_inode_setattr()
3325 struct inode *inode = d_backing_inode(dentry); in selinux_inode_setxattr() local
3337 return (inode_owner_or_capable(idmap, inode) ? 0 : -EPERM); in selinux_inode_setxattr()
3339 sbsec = selinux_superblock(inode->i_sb); in selinux_inode_setxattr()
3343 if (!inode_owner_or_capable(idmap, inode)) in selinux_inode_setxattr()
3430 struct inode *inode = d_backing_inode(dentry); in selinux_inode_post_setxattr() local
3454 inode->i_sb->s_id, inode->i_ino, -rc); in selinux_inode_post_setxattr()
3460 isec->sclass = inode_mode_to_security_class(inode->i_mode); in selinux_inode_post_setxattr()
3561 struct inode *inode, const char *name, in selinux_inode_getsecurity() argument
3586 isec = inode_security(inode); in selinux_inode_getsecurity()
3605 static int selinux_inode_setsecurity(struct inode *inode, const char *name, in selinux_inode_setsecurity() argument
3608 struct inode_security_struct *isec = inode_security_novalidate(inode); in selinux_inode_setsecurity()
3616 sbsec = selinux_superblock(inode->i_sb); in selinux_inode_setsecurity()
3629 isec->sclass = inode_mode_to_security_class(inode->i_mode); in selinux_inode_setsecurity()
3636 static int selinux_inode_listsecurity(struct inode *inode, char *buffer, size_t buffer_size) in selinux_inode_listsecurity() argument
3648 static void selinux_inode_getlsmprop(struct inode *inode, struct lsm_prop *prop) in selinux_inode_getlsmprop() argument
3650 struct inode_security_struct *isec = inode_security_novalidate(inode); in selinux_inode_getlsmprop()
3760 struct inode *inode = file_inode(file); in selinux_revalidate_file_permission() local
3767 file_mask_to_av(inode->i_mode, mask)); in selinux_revalidate_file_permission()
3772 struct inode *inode = file_inode(file); in selinux_file_permission() local
3781 isec = inode_security(inode); in selinux_file_permission()
3810 struct inode *inode = file_inode(file); in ioctl_has_perm() local
3832 if (unlikely(IS_PRIVATE(inode))) in ioctl_has_perm()
3835 isec = inode_security(inode); in ioctl_has_perm()
4215 static int selinux_kernel_create_files_as(struct cred *new, struct inode *inode) in selinux_kernel_create_files_as() argument
4217 struct inode_security_struct *isec = inode_security(inode); in selinux_kernel_create_files_as()
4457 struct inode *inode) in selinux_task_to_inode() argument
4459 struct inode_security_struct *isec = selinux_inode(inode); in selinux_task_to_inode()
4463 isec->sclass = inode_mode_to_security_class(inode->i_mode); in selinux_task_to_inode()
6516 static void selinux_d_instantiate(struct dentry *dentry, struct inode *inode) in selinux_d_instantiate() argument
6518 if (inode) in selinux_d_instantiate()
6519 inode_doinit_with_dentry(inode, dentry); in selinux_d_instantiate()
6829 static void selinux_inode_invalidate_secctx(struct inode *inode) in selinux_inode_invalidate_secctx() argument
6831 struct inode_security_struct *isec = selinux_inode(inode); in selinux_inode_invalidate_secctx()
6841 static int selinux_inode_notifysecctx(struct inode *inode, void *ctx, u32 ctxlen) in selinux_inode_notifysecctx() argument
6843 int rc = selinux_inode_setsecurity(inode, XATTR_SELINUX_SUFFIX, in selinux_inode_notifysecctx()
6858 static int selinux_inode_getsecctx(struct inode *inode, struct lsm_context *cp) in selinux_inode_getsecctx() argument
6861 len = selinux_inode_getsecurity(&nop_mnt_idmap, inode, in selinux_inode_getsecctx()
7276 struct inode *inode = file_inode(file); in selinux_uring_cmd() local
7277 struct inode_security_struct *isec = selinux_inode(inode); in selinux_uring_cmd()