audit: reverse arguments to audit_inode_child
authorJeff Layton <jlayton@redhat.com>
Wed, 10 Oct 2012 19:25:21 +0000 (15:25 -0400)
committerAl Viro <viro@zeniv.linux.org.uk>
Fri, 12 Oct 2012 04:32:00 +0000 (00:32 -0400)
Most of the callers get called with an inode and dentry in the reverse
order. The compiler then has to reshuffle the arg registers and/or
stack in order to pass them on to audit_inode_child.

Reverse those arguments for a micro-optimization.

Reported-by: Eric Paris <eparis@redhat.com>
Signed-off-by: Jeff Layton <jlayton@redhat.com>
Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
fs/btrfs/ioctl.c
fs/namei.c
include/linux/audit.h
include/linux/fsnotify.h
kernel/auditsc.c

index e568c472f80771c9230b9967e8a2e4169e1e452c..49f4d59ac2c74fc15161fbaf2e678f576c72a4e0 100644 (file)
@@ -638,7 +638,7 @@ static int btrfs_may_delete(struct inode *dir,struct dentry *victim,int isdir)
                return -ENOENT;
 
        BUG_ON(victim->d_parent->d_inode != dir);
-       audit_inode_child(victim, dir);
+       audit_inode_child(dir, victim);
 
        error = inode_permission(dir, MAY_WRITE | MAY_EXEC);
        if (error)
index f04ce11422972202ee8a422dbd7cb0105bf8dc01..a7ad35c66807530c6ebb831bb5601e8a581e5e27 100644 (file)
@@ -2176,7 +2176,7 @@ static int may_delete(struct inode *dir,struct dentry *victim,int isdir)
                return -ENOENT;
 
        BUG_ON(victim->d_parent->d_inode != dir);
-       audit_inode_child(victim, dir);
+       audit_inode_child(dir, victim);
 
        error = inode_permission(dir, MAY_WRITE | MAY_EXEC);
        if (error)
index 2c83e5f7edb12882330d2958f9c1db6b2d708c69..8c66fc248c7542855884d7ae003ae1d02ae8ed1c 100644 (file)
@@ -464,8 +464,8 @@ extern void __audit_syscall_exit(int ret_success, long ret_value);
 extern void __audit_getname(const char *name);
 extern void audit_putname(const char *name);
 extern void __audit_inode(const char *name, const struct dentry *dentry);
-extern void __audit_inode_child(const struct dentry *dentry,
-                               const struct inode *parent);
+extern void __audit_inode_child(const struct inode *parent,
+                               const struct dentry *dentry);
 extern void __audit_seccomp(unsigned long syscall, long signr, int code);
 extern void __audit_ptrace(struct task_struct *t);
 
@@ -504,10 +504,10 @@ static inline void audit_inode(const char *name, const struct dentry *dentry) {
        if (unlikely(!audit_dummy_context()))
                __audit_inode(name, dentry);
 }
-static inline void audit_inode_child(const struct dentry *dentry,
-                                    const struct inode *parent) {
+static inline void audit_inode_child(const struct inode *parent,
+                                    const struct dentry *dentry) {
        if (unlikely(!audit_dummy_context()))
-               __audit_inode_child(dentry, parent);
+               __audit_inode_child(parent, dentry);
 }
 void audit_core_dumps(long signr);
 
@@ -657,13 +657,13 @@ static inline void audit_putname(const char *name)
 { }
 static inline void __audit_inode(const char *name, const struct dentry *dentry)
 { }
-static inline void __audit_inode_child(const struct dentry *dentry,
-                                       const struct inode *parent)
+static inline void __audit_inode_child(const struct inode *parent,
+                                       const struct dentry *dentry)
 { }
 static inline void audit_inode(const char *name, const struct dentry *dentry)
 { }
-static inline void audit_inode_child(const struct dentry *dentry,
-                                    const struct inode *parent)
+static inline void audit_inode_child(const struct inode *parent,
+                                    const struct dentry *dentry)
 { }
 static inline void audit_core_dumps(long signr)
 { }
index a6dfe6944564018d070529e5e42642b8aca31de4..9c284714977d315ee50020225e04b410ee6a3319 100644 (file)
@@ -109,7 +109,7 @@ static inline void fsnotify_move(struct inode *old_dir, struct inode *new_dir,
 
        if (source)
                fsnotify(source, FS_MOVE_SELF, moved->d_inode, FSNOTIFY_EVENT_INODE, NULL, 0);
-       audit_inode_child(moved, new_dir);
+       audit_inode_child(new_dir, moved);
 }
 
 /*
@@ -155,7 +155,7 @@ static inline void fsnotify_inoderemove(struct inode *inode)
  */
 static inline void fsnotify_create(struct inode *inode, struct dentry *dentry)
 {
-       audit_inode_child(dentry, inode);
+       audit_inode_child(inode, dentry);
 
        fsnotify(inode, FS_CREATE, dentry->d_inode, FSNOTIFY_EVENT_INODE, dentry->d_name.name, 0);
 }
@@ -168,7 +168,7 @@ static inline void fsnotify_create(struct inode *inode, struct dentry *dentry)
 static inline void fsnotify_link(struct inode *dir, struct inode *inode, struct dentry *new_dentry)
 {
        fsnotify_link_count(inode);
-       audit_inode_child(new_dentry, dir);
+       audit_inode_child(dir, new_dentry);
 
        fsnotify(dir, FS_CREATE, inode, FSNOTIFY_EVENT_INODE, new_dentry->d_name.name, 0);
 }
@@ -181,7 +181,7 @@ static inline void fsnotify_mkdir(struct inode *inode, struct dentry *dentry)
        __u32 mask = (FS_CREATE | FS_ISDIR);
        struct inode *d_inode = dentry->d_inode;
 
-       audit_inode_child(dentry, inode);
+       audit_inode_child(inode, dentry);
 
        fsnotify(inode, mask, d_inode, FSNOTIFY_EVENT_INODE, dentry->d_name.name, 0);
 }
index 2e481141b014b81fe96497b1e04cc0eb39a30286..40743af02d8f030653e58bcb6102d78f2879bd3e 100644 (file)
@@ -2166,9 +2166,9 @@ out:
 }
 
 /**
- * audit_inode_child - collect inode info for created/removed objects
- * @dentry: dentry being audited
+ * __audit_inode_child - collect inode info for created/removed objects
  * @parent: inode of dentry parent
+ * @dentry: dentry being audited
  *
  * For syscalls that create or remove filesystem objects, audit_inode
  * can only collect information for the filesystem object's parent.
@@ -2178,8 +2178,8 @@ out:
  * must be hooked prior, in order to capture the target inode during
  * unsuccessful attempts.
  */
-void __audit_inode_child(const struct dentry *dentry,
-                        const struct inode *parent)
+void __audit_inode_child(const struct inode *parent,
+                        const struct dentry *dentry)
 {
        struct audit_context *context = current->audit_context;
        const char *found_parent = NULL, *found_child = NULL;