audit: overhaul __audit_inode_child to accomodate retrying
[cascardo/linux.git] / include / linux / audit.h
index b11f517..3df643d 100644 (file)
@@ -457,6 +457,8 @@ extern int audit_classify_arch(int arch);
 #define        AUDIT_TYPE_UNKNOWN      0       /* we don't know yet */
 #define        AUDIT_TYPE_NORMAL       1       /* a "normal" audit record */
 #define        AUDIT_TYPE_PARENT       2       /* a parent audit record */
+#define        AUDIT_TYPE_CHILD_DELETE 3       /* a child being deleted */
+#define        AUDIT_TYPE_CHILD_CREATE 4       /* a child being created */
 
 #ifdef CONFIG_AUDITSYSCALL
 /* These are defined in auditsc.c */
@@ -472,7 +474,8 @@ extern void audit_putname(const char *name);
 extern void __audit_inode(const char *name, const struct dentry *dentry,
                                unsigned int parent);
 extern void __audit_inode_child(const struct inode *parent,
-                               const struct dentry *dentry);
+                               const struct dentry *dentry,
+                               const unsigned char type);
 extern void __audit_seccomp(unsigned long syscall, long signr, int code);
 extern void __audit_ptrace(struct task_struct *t);
 
@@ -513,9 +516,10 @@ static inline void audit_inode(const char *name, const struct dentry *dentry,
                __audit_inode(name, dentry, parent);
 }
 static inline void audit_inode_child(const struct inode *parent,
-                                    const struct dentry *dentry) {
+                                    const struct dentry *dentry,
+                                    const unsigned char type) {
        if (unlikely(!audit_dummy_context()))
-               __audit_inode_child(parent, dentry);
+               __audit_inode_child(parent, dentry, type);
 }
 void audit_core_dumps(long signr);
 
@@ -667,13 +671,15 @@ static inline void __audit_inode(const char *name, const struct dentry *dentry,
                                        unsigned int parent)
 { }
 static inline void __audit_inode_child(const struct inode *parent,
-                                       const struct dentry *dentry)
+                                       const struct dentry *dentry,
+                                       const unsigned char type)
 { }
 static inline void audit_inode(const char *name, const struct dentry *dentry,
                                unsigned int parent)
 { }
 static inline void audit_inode_child(const struct inode *parent,
-                                    const struct dentry *dentry)
+                                    const struct dentry *dentry,
+                                    const unsigned char type)
 { }
 static inline void audit_core_dumps(long signr)
 { }