Lines Matching refs:dentry

270 static int inode_doinit_with_dentry(struct inode *inode, struct dentry *opt_dentry);
279 struct dentry *dentry, in __inode_security_revalidate() argument
296 inode_doinit_with_dentry(inode, dentry); in __inode_security_revalidate()
334 static inline struct inode_security_struct *backing_inode_security_novalidate(struct dentry *dentry) in backing_inode_security_novalidate() argument
336 return selinux_inode(d_backing_inode(dentry)); in backing_inode_security_novalidate()
342 static inline struct inode_security_struct *backing_inode_security(struct dentry *dentry) in backing_inode_security() argument
344 struct inode *inode = d_backing_inode(dentry); in backing_inode_security()
350 __inode_security_revalidate(inode, dentry, true); in backing_inode_security()
513 struct dentry *root = sb->s_root; in sb_check_xattr_support()
562 struct dentry *root = sb->s_root; in sb_finish_set_opts()
642 struct dentry *root = sb->s_root; in selinux_set_mnt_opts()
1118 struct dentry *root = sb->s_root; in selinux_sb_show_options()
1319 static int selinux_genfs_get_sid(struct dentry *dentry, in selinux_genfs_get_sid() argument
1325 struct super_block *sb = dentry->d_sb; in selinux_genfs_get_sid()
1332 path = dentry_path_raw(dentry, buffer, PAGE_SIZE); in selinux_genfs_get_sid()
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()
1419 static int inode_doinit_with_dentry(struct inode *inode, struct dentry *opt_dentry) in inode_doinit_with_dentry()
1425 struct dentry *dentry; in inode_doinit_with_dentry() local
1471 dentry = dget(opt_dentry); in inode_doinit_with_dentry()
1479 dentry = d_find_alias(inode); in inode_doinit_with_dentry()
1480 if (!dentry) in inode_doinit_with_dentry()
1481 dentry = d_find_any_alias(inode); in inode_doinit_with_dentry()
1483 if (!dentry) { in inode_doinit_with_dentry()
1496 rc = inode_doinit_use_xattr(inode, dentry, sbsec->def_sid, in inode_doinit_with_dentry()
1498 dput(dentry); in inode_doinit_with_dentry()
1530 dentry = dget(opt_dentry); in inode_doinit_with_dentry()
1536 dentry = d_find_alias(inode); in inode_doinit_with_dentry()
1537 if (!dentry) in inode_doinit_with_dentry()
1538 dentry = d_find_any_alias(inode); in inode_doinit_with_dentry()
1549 if (!dentry) in inode_doinit_with_dentry()
1551 rc = selinux_genfs_get_sid(dentry, sclass, in inode_doinit_with_dentry()
1554 dput(dentry); in inode_doinit_with_dentry()
1560 rc = inode_doinit_use_xattr(inode, dentry, in inode_doinit_with_dentry()
1563 dput(dentry); in inode_doinit_with_dentry()
1567 dput(dentry); in inode_doinit_with_dentry()
1688 struct dentry *dentry, in dentry_has_perm() argument
1692 struct inode *inode = d_backing_inode(dentry); in dentry_has_perm()
1696 ad.u.dentry = dentry; in dentry_has_perm()
1699 __inode_security_revalidate(inode, dentry, true); in dentry_has_perm()
1711 struct inode *inode = d_backing_inode(path->dentry); in path_has_perm()
1718 __inode_security_revalidate(inode, path->dentry, true); in path_has_perm()
1813 struct dentry *dentry, in may_create() argument
1829 ad.u.dentry = dentry; in may_create()
1837 rc = selinux_determine_inode_label(tsec, dir, &dentry->d_name, tclass, in may_create()
1857 struct dentry *dentry, in may_link() argument
1868 isec = backing_inode_security(dentry); in may_link()
1871 ad.u.dentry = dentry; in may_link()
1900 struct dentry *old_dentry, in may_rename()
1902 struct dentry *new_dentry) in may_rename()
1918 ad.u.dentry = old_dentry; in may_rename()
1934 ad.u.dentry = new_dentry; in may_rename()
2075 struct dentry *dentry = file->f_path.dentry; in selinux_binder_transfer_file() local
2098 if (unlikely(IS_PRIVATE(d_backing_inode(dentry)))) in selinux_binder_transfer_file()
2101 isec = backing_inode_security(dentry); in selinux_binder_transfer_file()
2193 static int selinux_quota_on(struct dentry *dentry) in selinux_quota_on() argument
2197 return dentry_has_perm(cred, dentry, FILE__QUOTAON); in selinux_quota_on()
2752 ad.u.dentry = sb->s_root; in selinux_sb_kern_mount()
2756 static int selinux_sb_statfs(struct dentry *dentry) in selinux_sb_statfs() argument
2762 ad.u.dentry = dentry->d_sb->s_root; in selinux_sb_statfs()
2763 return superblock_has_perm(cred, dentry->d_sb, FILESYSTEM__GETATTR, &ad); in selinux_sb_statfs()
2775 return superblock_has_perm(cred, path->dentry->d_sb, in selinux_mount()
2881 static int selinux_dentry_init_security(struct dentry *dentry, int mode, in selinux_dentry_init_security() argument
2890 d_inode(dentry->d_parent), name, in selinux_dentry_init_security()
2903 static int selinux_dentry_create_files_as(struct dentry *dentry, int mode, in selinux_dentry_create_files_as() argument
2913 d_inode(dentry->d_parent), name, in selinux_dentry_create_files_as()
3024 static int selinux_inode_create(struct inode *dir, struct dentry *dentry, umode_t mode) in selinux_inode_create() argument
3026 return may_create(dir, dentry, SECCLASS_FILE); 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() argument
3036 return may_link(dir, dentry, MAY_UNLINK); in selinux_inode_unlink()
3039 static int selinux_inode_symlink(struct inode *dir, struct dentry *dentry, const char *name) in selinux_inode_symlink() argument
3041 return may_create(dir, dentry, SECCLASS_LNK_FILE); in selinux_inode_symlink()
3044 static int selinux_inode_mkdir(struct inode *dir, struct dentry *dentry, umode_t mask) in selinux_inode_mkdir() argument
3046 return may_create(dir, dentry, SECCLASS_DIR); in selinux_inode_mkdir()
3049 static int selinux_inode_rmdir(struct inode *dir, struct dentry *dentry) in selinux_inode_rmdir() argument
3051 return may_link(dir, dentry, MAY_RMDIR); 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() argument
3056 return may_create(dir, dentry, inode_mode_to_security_class(mode)); 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()
3065 static int selinux_inode_readlink(struct dentry *dentry) in selinux_inode_readlink() argument
3069 return dentry_has_perm(cred, dentry, FILE__READ); in selinux_inode_readlink()
3072 static int selinux_inode_follow_link(struct dentry *dentry, struct inode *inode, in selinux_inode_follow_link() argument
3080 ad.u.dentry = dentry; in selinux_inode_follow_link()
3251 static int selinux_inode_setattr(struct mnt_idmap *idmap, struct dentry *dentry, in selinux_inode_setattr() argument
3255 struct inode *inode = d_backing_inode(dentry); in selinux_inode_setattr()
3269 return dentry_has_perm(cred, dentry, FILE__SETATTR); in selinux_inode_setattr()
3277 return dentry_has_perm(cred, dentry, av); in selinux_inode_setattr()
3322 struct dentry *dentry, const char *name, in selinux_inode_setxattr() argument
3325 struct inode *inode = d_backing_inode(dentry); in selinux_inode_setxattr()
3334 return dentry_has_perm(current_cred(), dentry, FILE__SETATTR); in selinux_inode_setxattr()
3347 ad.u.dentry = dentry; in selinux_inode_setxattr()
3349 isec = backing_inode_security(dentry); in selinux_inode_setxattr()
3408 struct dentry *dentry, const char *acl_name, in selinux_inode_set_acl() argument
3411 return dentry_has_perm(current_cred(), dentry, FILE__SETATTR); in selinux_inode_set_acl()
3415 struct dentry *dentry, const char *acl_name) in selinux_inode_get_acl() argument
3417 return dentry_has_perm(current_cred(), dentry, FILE__GETATTR); in selinux_inode_get_acl()
3421 struct dentry *dentry, const char *acl_name) in selinux_inode_remove_acl() argument
3423 return dentry_has_perm(current_cred(), dentry, FILE__SETATTR); in selinux_inode_remove_acl()
3426 static void selinux_inode_post_setxattr(struct dentry *dentry, const char *name, in selinux_inode_post_setxattr() argument
3430 struct inode *inode = d_backing_inode(dentry); in selinux_inode_post_setxattr()
3458 isec = backing_inode_security(dentry); in selinux_inode_post_setxattr()
3466 static int selinux_inode_getxattr(struct dentry *dentry, const char *name) in selinux_inode_getxattr() argument
3470 return dentry_has_perm(cred, dentry, FILE__GETATTR); in selinux_inode_getxattr()
3473 static int selinux_inode_listxattr(struct dentry *dentry) in selinux_inode_listxattr() argument
3477 return dentry_has_perm(cred, dentry, FILE__GETATTR); in selinux_inode_listxattr()
3481 struct dentry *dentry, const char *name) in selinux_inode_removexattr() argument
3485 return dentry_has_perm(current_cred(), dentry, FILE__SETATTR); in selinux_inode_removexattr()
3495 static int selinux_inode_file_setattr(struct dentry *dentry, in selinux_inode_file_setattr() argument
3498 return dentry_has_perm(current_cred(), dentry, FILE__SETATTR); in selinux_inode_file_setattr()
3501 static int selinux_inode_file_getattr(struct dentry *dentry, in selinux_inode_file_getattr() argument
3504 return dentry_has_perm(current_cred(), dentry, FILE__GETATTR); in selinux_inode_file_getattr()
3528 ret = superblock_has_perm(current_cred(), path->dentry->d_sb, in selinux_path_notify()
3655 static int selinux_inode_copy_up(struct dentry *src, struct cred **new) in selinux_inode_copy_up()
3675 static int selinux_inode_copy_up_xattr(struct dentry *dentry, const char *name) in selinux_inode_copy_up_xattr() argument
6516 static void selinux_d_instantiate(struct dentry *dentry, struct inode *inode) in selinux_d_instantiate() argument
6519 inode_doinit_with_dentry(inode, dentry); in selinux_d_instantiate()
6852 static int selinux_inode_setsecctx(struct dentry *dentry, void *ctx, u32 ctxlen) in selinux_inode_setsecctx() argument
6854 return __vfs_setxattr_locked(&nop_mnt_idmap, dentry, XATTR_NAME_SELINUX, in selinux_inode_setsecctx()