Commit c43a25ab authored by Jeff Layton's avatar Jeff Layton Committed by Al Viro

audit: reverse arguments to audit_inode_child

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: default avatarEric Paris <eparis@redhat.com>
Signed-off-by: default avatarJeff Layton <jlayton@redhat.com>
Signed-off-by: default avatarAl Viro <viro@zeniv.linux.org.uk>
parent 9cec9d68
...@@ -638,7 +638,7 @@ static int btrfs_may_delete(struct inode *dir,struct dentry *victim,int isdir) ...@@ -638,7 +638,7 @@ static int btrfs_may_delete(struct inode *dir,struct dentry *victim,int isdir)
return -ENOENT; return -ENOENT;
BUG_ON(victim->d_parent->d_inode != dir); 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); error = inode_permission(dir, MAY_WRITE | MAY_EXEC);
if (error) if (error)
......
...@@ -2176,7 +2176,7 @@ static int may_delete(struct inode *dir,struct dentry *victim,int isdir) ...@@ -2176,7 +2176,7 @@ static int may_delete(struct inode *dir,struct dentry *victim,int isdir)
return -ENOENT; return -ENOENT;
BUG_ON(victim->d_parent->d_inode != dir); 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); error = inode_permission(dir, MAY_WRITE | MAY_EXEC);
if (error) if (error)
......
...@@ -464,8 +464,8 @@ extern void __audit_syscall_exit(int ret_success, long ret_value); ...@@ -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_getname(const char *name);
extern void audit_putname(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(const char *name, const struct dentry *dentry);
extern void __audit_inode_child(const struct dentry *dentry, extern void __audit_inode_child(const struct inode *parent,
const struct inode *parent); const struct dentry *dentry);
extern void __audit_seccomp(unsigned long syscall, long signr, int code); extern void __audit_seccomp(unsigned long syscall, long signr, int code);
extern void __audit_ptrace(struct task_struct *t); extern void __audit_ptrace(struct task_struct *t);
...@@ -504,10 +504,10 @@ static inline void audit_inode(const char *name, const struct dentry *dentry) { ...@@ -504,10 +504,10 @@ static inline void audit_inode(const char *name, const struct dentry *dentry) {
if (unlikely(!audit_dummy_context())) if (unlikely(!audit_dummy_context()))
__audit_inode(name, dentry); __audit_inode(name, dentry);
} }
static inline void audit_inode_child(const struct dentry *dentry, static inline void audit_inode_child(const struct inode *parent,
const struct inode *parent) { const struct dentry *dentry) {
if (unlikely(!audit_dummy_context())) if (unlikely(!audit_dummy_context()))
__audit_inode_child(dentry, parent); __audit_inode_child(parent, dentry);
} }
void audit_core_dumps(long signr); void audit_core_dumps(long signr);
...@@ -657,13 +657,13 @@ static inline void audit_putname(const char *name) ...@@ -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(const char *name, const struct dentry *dentry)
{ } { }
static inline void __audit_inode_child(const struct dentry *dentry, static inline void __audit_inode_child(const struct inode *parent,
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(const char *name, const struct dentry *dentry)
{ } { }
static inline void audit_inode_child(const struct dentry *dentry, static inline void audit_inode_child(const struct inode *parent,
const struct inode *parent) const struct dentry *dentry)
{ } { }
static inline void audit_core_dumps(long signr) static inline void audit_core_dumps(long signr)
{ } { }
......
...@@ -109,7 +109,7 @@ static inline void fsnotify_move(struct inode *old_dir, struct inode *new_dir, ...@@ -109,7 +109,7 @@ static inline void fsnotify_move(struct inode *old_dir, struct inode *new_dir,
if (source) if (source)
fsnotify(source, FS_MOVE_SELF, moved->d_inode, FSNOTIFY_EVENT_INODE, NULL, 0); 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) ...@@ -155,7 +155,7 @@ static inline void fsnotify_inoderemove(struct inode *inode)
*/ */
static inline void fsnotify_create(struct inode *inode, struct dentry *dentry) 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); 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) ...@@ -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) static inline void fsnotify_link(struct inode *dir, struct inode *inode, struct dentry *new_dentry)
{ {
fsnotify_link_count(inode); 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); 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) ...@@ -181,7 +181,7 @@ static inline void fsnotify_mkdir(struct inode *inode, struct dentry *dentry)
__u32 mask = (FS_CREATE | FS_ISDIR); __u32 mask = (FS_CREATE | FS_ISDIR);
struct inode *d_inode = dentry->d_inode; 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); fsnotify(inode, mask, d_inode, FSNOTIFY_EVENT_INODE, dentry->d_name.name, 0);
} }
......
...@@ -2166,9 +2166,9 @@ void __audit_inode(const char *name, const struct dentry *dentry) ...@@ -2166,9 +2166,9 @@ void __audit_inode(const char *name, const struct dentry *dentry)
} }
/** /**
* audit_inode_child - collect inode info for created/removed objects * __audit_inode_child - collect inode info for created/removed objects
* @dentry: dentry being audited
* @parent: inode of dentry parent * @parent: inode of dentry parent
* @dentry: dentry being audited
* *
* For syscalls that create or remove filesystem objects, audit_inode * For syscalls that create or remove filesystem objects, audit_inode
* can only collect information for the filesystem object's parent. * can only collect information for the filesystem object's parent.
...@@ -2178,8 +2178,8 @@ void __audit_inode(const char *name, const struct dentry *dentry) ...@@ -2178,8 +2178,8 @@ void __audit_inode(const char *name, const struct dentry *dentry)
* must be hooked prior, in order to capture the target inode during * must be hooked prior, in order to capture the target inode during
* unsuccessful attempts. * unsuccessful attempts.
*/ */
void __audit_inode_child(const struct dentry *dentry, void __audit_inode_child(const struct inode *parent,
const struct inode *parent) const struct dentry *dentry)
{ {
struct audit_context *context = current->audit_context; struct audit_context *context = current->audit_context;
const char *found_parent = NULL, *found_child = NULL; const char *found_parent = NULL, *found_child = NULL;
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment