diff options
-rw-r--r-- | arch/x86/ia32/ia32entry.S | 1 | ||||
-rw-r--r-- | arch/x86/include/asm/unistd_32.h | 3 | ||||
-rw-r--r-- | arch/x86/include/asm/unistd_64.h | 2 | ||||
-rw-r--r-- | arch/x86/kernel/syscall_table_32.S | 1 | ||||
-rw-r--r-- | fs/notify/fanotify/Makefile | 2 | ||||
-rw-r--r-- | fs/notify/fanotify/fanotify_user.c | 13 | ||||
-rw-r--r-- | include/linux/syscalls.h | 2 | ||||
-rw-r--r-- | kernel/sys_ni.c | 3 |
8 files changed, 25 insertions, 2 deletions
diff --git a/arch/x86/ia32/ia32entry.S b/arch/x86/ia32/ia32entry.S index e790bc1fbfa3..586cb3be2e32 100644 --- a/arch/x86/ia32/ia32entry.S +++ b/arch/x86/ia32/ia32entry.S | |||
@@ -842,4 +842,5 @@ ia32_sys_call_table: | |||
842 | .quad compat_sys_rt_tgsigqueueinfo /* 335 */ | 842 | .quad compat_sys_rt_tgsigqueueinfo /* 335 */ |
843 | .quad sys_perf_event_open | 843 | .quad sys_perf_event_open |
844 | .quad compat_sys_recvmmsg | 844 | .quad compat_sys_recvmmsg |
845 | .quad sys_fanotify_init | ||
845 | ia32_syscall_end: | 846 | ia32_syscall_end: |
diff --git a/arch/x86/include/asm/unistd_32.h b/arch/x86/include/asm/unistd_32.h index beb9b5f8f8a4..981c7e7ad804 100644 --- a/arch/x86/include/asm/unistd_32.h +++ b/arch/x86/include/asm/unistd_32.h | |||
@@ -343,10 +343,11 @@ | |||
343 | #define __NR_rt_tgsigqueueinfo 335 | 343 | #define __NR_rt_tgsigqueueinfo 335 |
344 | #define __NR_perf_event_open 336 | 344 | #define __NR_perf_event_open 336 |
345 | #define __NR_recvmmsg 337 | 345 | #define __NR_recvmmsg 337 |
346 | #define __NR_fanotify_init 338 | ||
346 | 347 | ||
347 | #ifdef __KERNEL__ | 348 | #ifdef __KERNEL__ |
348 | 349 | ||
349 | #define NR_syscalls 338 | 350 | #define NR_syscalls 339 |
350 | 351 | ||
351 | #define __ARCH_WANT_IPC_PARSE_VERSION | 352 | #define __ARCH_WANT_IPC_PARSE_VERSION |
352 | #define __ARCH_WANT_OLD_READDIR | 353 | #define __ARCH_WANT_OLD_READDIR |
diff --git a/arch/x86/include/asm/unistd_64.h b/arch/x86/include/asm/unistd_64.h index ff4307b0e81e..4f23e04bdb34 100644 --- a/arch/x86/include/asm/unistd_64.h +++ b/arch/x86/include/asm/unistd_64.h | |||
@@ -663,6 +663,8 @@ __SYSCALL(__NR_rt_tgsigqueueinfo, sys_rt_tgsigqueueinfo) | |||
663 | __SYSCALL(__NR_perf_event_open, sys_perf_event_open) | 663 | __SYSCALL(__NR_perf_event_open, sys_perf_event_open) |
664 | #define __NR_recvmmsg 299 | 664 | #define __NR_recvmmsg 299 |
665 | __SYSCALL(__NR_recvmmsg, sys_recvmmsg) | 665 | __SYSCALL(__NR_recvmmsg, sys_recvmmsg) |
666 | #define __NR_fanotify_init 300 | ||
667 | __SYSCALL(__NR_fanotify_init, sys_fanotify_init) | ||
666 | 668 | ||
667 | #ifndef __NO_STUBS | 669 | #ifndef __NO_STUBS |
668 | #define __ARCH_WANT_OLD_READDIR | 670 | #define __ARCH_WANT_OLD_READDIR |
diff --git a/arch/x86/kernel/syscall_table_32.S b/arch/x86/kernel/syscall_table_32.S index 8b3729341216..e38793b50e1d 100644 --- a/arch/x86/kernel/syscall_table_32.S +++ b/arch/x86/kernel/syscall_table_32.S | |||
@@ -337,3 +337,4 @@ ENTRY(sys_call_table) | |||
337 | .long sys_rt_tgsigqueueinfo /* 335 */ | 337 | .long sys_rt_tgsigqueueinfo /* 335 */ |
338 | .long sys_perf_event_open | 338 | .long sys_perf_event_open |
339 | .long sys_recvmmsg | 339 | .long sys_recvmmsg |
340 | .long sys_fanotify_init | ||
diff --git a/fs/notify/fanotify/Makefile b/fs/notify/fanotify/Makefile index e7d39c05b0fe..0999213e7e6e 100644 --- a/fs/notify/fanotify/Makefile +++ b/fs/notify/fanotify/Makefile | |||
@@ -1 +1 @@ | |||
obj-$(CONFIG_FANOTIFY) += fanotify.o | obj-$(CONFIG_FANOTIFY) += fanotify.o fanotify_user.o | ||
diff --git a/fs/notify/fanotify/fanotify_user.c b/fs/notify/fanotify/fanotify_user.c new file mode 100644 index 000000000000..cf176fc7086b --- /dev/null +++ b/fs/notify/fanotify/fanotify_user.c | |||
@@ -0,0 +1,13 @@ | |||
1 | #include <linux/fcntl.h> | ||
2 | #include <linux/fs.h> | ||
3 | #include <linux/fsnotify_backend.h> | ||
4 | #include <linux/security.h> | ||
5 | #include <linux/syscalls.h> | ||
6 | |||
7 | #include "fanotify.h" | ||
8 | |||
9 | SYSCALL_DEFINE3(fanotify_init, unsigned int, flags, unsigned int, event_f_flags, | ||
10 | unsigned int, priority) | ||
11 | { | ||
12 | return -ENOSYS; | ||
13 | } | ||
diff --git a/include/linux/syscalls.h b/include/linux/syscalls.h index 13ebb5413a79..198dcc9bd025 100644 --- a/include/linux/syscalls.h +++ b/include/linux/syscalls.h | |||
@@ -813,6 +813,8 @@ asmlinkage long sys_pselect6(int, fd_set __user *, fd_set __user *, | |||
813 | asmlinkage long sys_ppoll(struct pollfd __user *, unsigned int, | 813 | asmlinkage long sys_ppoll(struct pollfd __user *, unsigned int, |
814 | struct timespec __user *, const sigset_t __user *, | 814 | struct timespec __user *, const sigset_t __user *, |
815 | size_t); | 815 | size_t); |
816 | asmlinkage long sys_fanotify_init(unsigned int flags, unsigned int event_f_flags, | ||
817 | unsigned int priority); | ||
816 | 818 | ||
817 | int kernel_execve(const char *filename, char *const argv[], char *const envp[]); | 819 | int kernel_execve(const char *filename, char *const argv[], char *const envp[]); |
818 | 820 | ||
diff --git a/kernel/sys_ni.c b/kernel/sys_ni.c index 70f2ea758ffe..2c4adc2decc3 100644 --- a/kernel/sys_ni.c +++ b/kernel/sys_ni.c | |||
@@ -181,3 +181,6 @@ cond_syscall(sys_eventfd2); | |||
181 | 181 | ||
182 | /* performance counters: */ | 182 | /* performance counters: */ |
183 | cond_syscall(sys_perf_event_open); | 183 | cond_syscall(sys_perf_event_open); |
184 | |||
185 | /* fanotify! */ | ||
186 | cond_syscall(sys_fanotify_init); | ||