diff options
Diffstat (limited to 'fs/compat.c')
-rw-r--r-- | fs/compat.c | 21 |
1 files changed, 19 insertions, 2 deletions
diff --git a/fs/compat.c b/fs/compat.c index 6c19040ffeef..4b6ed03cc478 100644 --- a/fs/compat.c +++ b/fs/compat.c | |||
@@ -38,8 +38,6 @@ | |||
38 | #include <linux/dirent.h> | 38 | #include <linux/dirent.h> |
39 | #include <linux/fsnotify.h> | 39 | #include <linux/fsnotify.h> |
40 | #include <linux/highuid.h> | 40 | #include <linux/highuid.h> |
41 | #include <linux/sunrpc/svc.h> | ||
42 | #include <linux/nfsd/nfsd.h> | ||
43 | #include <linux/nfsd/syscall.h> | 41 | #include <linux/nfsd/syscall.h> |
44 | #include <linux/personality.h> | 42 | #include <linux/personality.h> |
45 | #include <linux/rwsem.h> | 43 | #include <linux/rwsem.h> |
@@ -51,6 +49,7 @@ | |||
51 | #include <linux/mm.h> | 49 | #include <linux/mm.h> |
52 | #include <linux/eventpoll.h> | 50 | #include <linux/eventpoll.h> |
53 | #include <linux/fs_struct.h> | 51 | #include <linux/fs_struct.h> |
52 | #include <linux/slab.h> | ||
54 | 53 | ||
55 | #include <asm/uaccess.h> | 54 | #include <asm/uaccess.h> |
56 | #include <asm/mmu_context.h> | 55 | #include <asm/mmu_context.h> |
@@ -1797,6 +1796,24 @@ asmlinkage long compat_sys_select(int n, compat_ulong_t __user *inp, | |||
1797 | return ret; | 1796 | return ret; |
1798 | } | 1797 | } |
1799 | 1798 | ||
1799 | struct compat_sel_arg_struct { | ||
1800 | compat_ulong_t n; | ||
1801 | compat_uptr_t inp; | ||
1802 | compat_uptr_t outp; | ||
1803 | compat_uptr_t exp; | ||
1804 | compat_uptr_t tvp; | ||
1805 | }; | ||
1806 | |||
1807 | asmlinkage long compat_sys_old_select(struct compat_sel_arg_struct __user *arg) | ||
1808 | { | ||
1809 | struct compat_sel_arg_struct a; | ||
1810 | |||
1811 | if (copy_from_user(&a, arg, sizeof(a))) | ||
1812 | return -EFAULT; | ||
1813 | return compat_sys_select(a.n, compat_ptr(a.inp), compat_ptr(a.outp), | ||
1814 | compat_ptr(a.exp), compat_ptr(a.tvp)); | ||
1815 | } | ||
1816 | |||
1800 | #ifdef HAVE_SET_RESTORE_SIGMASK | 1817 | #ifdef HAVE_SET_RESTORE_SIGMASK |
1801 | static long do_compat_pselect(int n, compat_ulong_t __user *inp, | 1818 | static long do_compat_pselect(int n, compat_ulong_t __user *inp, |
1802 | compat_ulong_t __user *outp, compat_ulong_t __user *exp, | 1819 | compat_ulong_t __user *outp, compat_ulong_t __user *exp, |