Merge branch 'next' of git://git.kernel.org/pub/scm/linux/kernel/git/jmorris/linux...
[cascardo/linux.git] / security / security.c
index 4838e7f..f825304 100644 (file)
@@ -364,6 +364,15 @@ int security_dentry_init_security(struct dentry *dentry, int mode,
 }
 EXPORT_SYMBOL(security_dentry_init_security);
 
+int security_dentry_create_files_as(struct dentry *dentry, int mode,
+                                   struct qstr *name,
+                                   const struct cred *old, struct cred *new)
+{
+       return call_int_hook(dentry_create_files_as, 0, dentry, mode,
+                               name, old, new);
+}
+EXPORT_SYMBOL(security_dentry_create_files_as);
+
 int security_inode_init_security(struct inode *inode, struct inode *dir,
                                 const struct qstr *qstr,
                                 const initxattrs initxattrs, void *fs_data)
@@ -748,6 +757,18 @@ void security_inode_getsecid(struct inode *inode, u32 *secid)
        call_void_hook(inode_getsecid, inode, secid);
 }
 
+int security_inode_copy_up(struct dentry *src, struct cred **new)
+{
+       return call_int_hook(inode_copy_up, 0, src, new);
+}
+EXPORT_SYMBOL(security_inode_copy_up);
+
+int security_inode_copy_up_xattr(const char *name)
+{
+       return call_int_hook(inode_copy_up_xattr, -EOPNOTSUPP, name);
+}
+EXPORT_SYMBOL(security_inode_copy_up_xattr);
+
 int security_file_permission(struct file *file, int mask)
 {
        int ret;
@@ -1623,6 +1644,8 @@ struct security_hook_heads security_hook_heads = {
                LIST_HEAD_INIT(security_hook_heads.sb_parse_opts_str),
        .dentry_init_security =
                LIST_HEAD_INIT(security_hook_heads.dentry_init_security),
+       .dentry_create_files_as =
+               LIST_HEAD_INIT(security_hook_heads.dentry_create_files_as),
 #ifdef CONFIG_SECURITY_PATH
        .path_unlink =  LIST_HEAD_INIT(security_hook_heads.path_unlink),
        .path_mkdir =   LIST_HEAD_INIT(security_hook_heads.path_mkdir),
@@ -1684,6 +1707,10 @@ struct security_hook_heads security_hook_heads = {
                LIST_HEAD_INIT(security_hook_heads.inode_listsecurity),
        .inode_getsecid =
                LIST_HEAD_INIT(security_hook_heads.inode_getsecid),
+       .inode_copy_up =
+               LIST_HEAD_INIT(security_hook_heads.inode_copy_up),
+       .inode_copy_up_xattr =
+               LIST_HEAD_INIT(security_hook_heads.inode_copy_up_xattr),
        .file_permission =
                LIST_HEAD_INIT(security_hook_heads.file_permission),
        .file_alloc_security =