sys_execve and sys_uselib do not call into fsnotify

sys_execve and sys_uselib do not call into fsnotify so inotify does not get
open events for these types of syscalls.  This patch simply makes the
requisite fsnotify calls.

Signed-off-by: Eric Paris <eparis@redhat.com>
Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
This commit is contained in:
Eric Paris 2008-12-17 13:53:20 -05:00 committed by Al Viro
parent 56ff5efad9
commit 6110e3abbf
1 changed files with 5 additions and 0 deletions

View File

@ -51,6 +51,7 @@
#include <linux/audit.h> #include <linux/audit.h>
#include <linux/tracehook.h> #include <linux/tracehook.h>
#include <linux/kmod.h> #include <linux/kmod.h>
#include <linux/fsnotify.h>
#include <asm/uaccess.h> #include <asm/uaccess.h>
#include <asm/mmu_context.h> #include <asm/mmu_context.h>
@ -132,6 +133,8 @@ asmlinkage long sys_uselib(const char __user * library)
if (IS_ERR(file)) if (IS_ERR(file))
goto out; goto out;
fsnotify_open(file->f_path.dentry);
error = -ENOEXEC; error = -ENOEXEC;
if(file->f_op) { if(file->f_op) {
struct linux_binfmt * fmt; struct linux_binfmt * fmt;
@ -684,6 +687,8 @@ struct file *open_exec(const char *name)
if (IS_ERR(file)) if (IS_ERR(file))
return file; return file;
fsnotify_open(file->f_path.dentry);
err = deny_write_access(file); err = deny_write_access(file);
if (err) { if (err) {
fput(file); fput(file);