fs: limit filesystem stacking depth
[pandora-kernel.git] / include / linux / evm.h
index a730782..9fc13a7 100644 (file)
@@ -9,12 +9,18 @@
 #define _LINUX_EVM_H
 
 #include <linux/integrity.h>
+#include <linux/xattr.h>
+
+struct integrity_iint_cache;
 
 #ifdef CONFIG_EVM
 extern enum integrity_status evm_verifyxattr(struct dentry *dentry,
                                             const char *xattr_name,
                                             void *xattr_value,
-                                            size_t xattr_value_len);
+                                            size_t xattr_value_len,
+                                            struct integrity_iint_cache *iint);
+extern int evm_inode_setattr(struct dentry *dentry, struct iattr *attr);
+extern void evm_inode_post_setattr(struct dentry *dentry, int ia_valid);
 extern int evm_inode_setxattr(struct dentry *dentry, const char *name,
                              const void *value, size_t size);
 extern void evm_inode_post_setxattr(struct dentry *dentry,
@@ -24,17 +30,39 @@ extern void evm_inode_post_setxattr(struct dentry *dentry,
 extern int evm_inode_removexattr(struct dentry *dentry, const char *xattr_name);
 extern void evm_inode_post_removexattr(struct dentry *dentry,
                                       const char *xattr_name);
+extern int evm_inode_init_security(struct inode *inode,
+                                  const struct xattr *xattr_array,
+                                  struct xattr *evm);
+#ifdef CONFIG_FS_POSIX_ACL
+extern int posix_xattr_acl(const char *xattrname);
+#else
+static inline int posix_xattr_acl(const char *xattrname)
+{
+       return 0;
+}
+#endif
 #else
 #ifdef CONFIG_INTEGRITY
 static inline enum integrity_status evm_verifyxattr(struct dentry *dentry,
                                                    const char *xattr_name,
                                                    void *xattr_value,
-                                                   size_t xattr_value_len)
+                                                   size_t xattr_value_len,
+                                       struct integrity_iint_cache *iint)
 {
        return INTEGRITY_UNKNOWN;
 }
 #endif
 
+static inline int evm_inode_setattr(struct dentry *dentry, struct iattr *attr)
+{
+       return 0;
+}
+
+static inline void evm_inode_post_setattr(struct dentry *dentry, int ia_valid)
+{
+       return;
+}
+
 static inline int evm_inode_setxattr(struct dentry *dentry, const char *name,
                                     const void *value, size_t size)
 {
@@ -61,5 +89,12 @@ static inline void evm_inode_post_removexattr(struct dentry *dentry,
        return;
 }
 
+static inline int evm_inode_init_security(struct inode *inode,
+                                         const struct xattr *xattr_array,
+                                         struct xattr *evm)
+{
+       return 0;
+}
+
 #endif /* CONFIG_EVM_H */
 #endif /* LINUX_EVM_H */