diff options
author | Ingo Molnar <mingo@elte.hu> | 2008-07-26 11:48:49 -0400 |
---|---|---|
committer | Ingo Molnar <mingo@elte.hu> | 2008-07-26 11:48:49 -0400 |
commit | c3cc99ff5d24e2eeaf7ec2032e720681916990e3 (patch) | |
tree | c3e74171bbbd2adde9d60b9db1c440415c8d2831 /fs/compat.c | |
parent | 38ffbe66d59051fd9cfcfc8545f164700e2fa3bc (diff) | |
parent | 024e8ac04453b3525448c31ef39848cf675ba6db (diff) |
Merge branch 'linus' into x86/xen
Diffstat (limited to 'fs/compat.c')
-rw-r--r-- | fs/compat.c | 22 |
1 files changed, 14 insertions, 8 deletions
diff --git a/fs/compat.c b/fs/compat.c index ed43e17a5dc6..106eba28ec5a 100644 --- a/fs/compat.c +++ b/fs/compat.c | |||
@@ -197,8 +197,8 @@ static int put_compat_statfs(struct compat_statfs __user *ubuf, struct kstatfs * | |||
197 | { | 197 | { |
198 | 198 | ||
199 | if (sizeof ubuf->f_blocks == 4) { | 199 | if (sizeof ubuf->f_blocks == 4) { |
200 | if ((kbuf->f_blocks | kbuf->f_bfree | kbuf->f_bavail) & | 200 | if ((kbuf->f_blocks | kbuf->f_bfree | kbuf->f_bavail | |
201 | 0xffffffff00000000ULL) | 201 | kbuf->f_bsize | kbuf->f_frsize) & 0xffffffff00000000ULL) |
202 | return -EOVERFLOW; | 202 | return -EOVERFLOW; |
203 | /* f_files and f_ffree may be -1; it's okay | 203 | /* f_files and f_ffree may be -1; it's okay |
204 | * to stuff that into 32 bits */ | 204 | * to stuff that into 32 bits */ |
@@ -271,8 +271,8 @@ out: | |||
271 | static int put_compat_statfs64(struct compat_statfs64 __user *ubuf, struct kstatfs *kbuf) | 271 | static int put_compat_statfs64(struct compat_statfs64 __user *ubuf, struct kstatfs *kbuf) |
272 | { | 272 | { |
273 | if (sizeof ubuf->f_blocks == 4) { | 273 | if (sizeof ubuf->f_blocks == 4) { |
274 | if ((kbuf->f_blocks | kbuf->f_bfree | kbuf->f_bavail) & | 274 | if ((kbuf->f_blocks | kbuf->f_bfree | kbuf->f_bavail | |
275 | 0xffffffff00000000ULL) | 275 | kbuf->f_bsize | kbuf->f_frsize) & 0xffffffff00000000ULL) |
276 | return -EOVERFLOW; | 276 | return -EOVERFLOW; |
277 | /* f_files and f_ffree may be -1; it's okay | 277 | /* f_files and f_ffree may be -1; it's okay |
278 | * to stuff that into 32 bits */ | 278 | * to stuff that into 32 bits */ |
@@ -2131,9 +2131,9 @@ asmlinkage long compat_sys_epoll_pwait(int epfd, | |||
2131 | 2131 | ||
2132 | #ifdef CONFIG_SIGNALFD | 2132 | #ifdef CONFIG_SIGNALFD |
2133 | 2133 | ||
2134 | asmlinkage long compat_sys_signalfd(int ufd, | 2134 | asmlinkage long compat_sys_signalfd4(int ufd, |
2135 | const compat_sigset_t __user *sigmask, | 2135 | const compat_sigset_t __user *sigmask, |
2136 | compat_size_t sigsetsize) | 2136 | compat_size_t sigsetsize, int flags) |
2137 | { | 2137 | { |
2138 | compat_sigset_t ss32; | 2138 | compat_sigset_t ss32; |
2139 | sigset_t tmp; | 2139 | sigset_t tmp; |
@@ -2148,9 +2148,15 @@ asmlinkage long compat_sys_signalfd(int ufd, | |||
2148 | if (copy_to_user(ksigmask, &tmp, sizeof(sigset_t))) | 2148 | if (copy_to_user(ksigmask, &tmp, sizeof(sigset_t))) |
2149 | return -EFAULT; | 2149 | return -EFAULT; |
2150 | 2150 | ||
2151 | return sys_signalfd(ufd, ksigmask, sizeof(sigset_t)); | 2151 | return sys_signalfd4(ufd, ksigmask, sizeof(sigset_t), flags); |
2152 | } | 2152 | } |
2153 | 2153 | ||
2154 | asmlinkage long compat_sys_signalfd(int ufd, | ||
2155 | const compat_sigset_t __user *sigmask, | ||
2156 | compat_size_t sigsetsize) | ||
2157 | { | ||
2158 | return compat_sys_signalfd4(ufd, sigmask, sigsetsize, 0); | ||
2159 | } | ||
2154 | #endif /* CONFIG_SIGNALFD */ | 2160 | #endif /* CONFIG_SIGNALFD */ |
2155 | 2161 | ||
2156 | #ifdef CONFIG_TIMERFD | 2162 | #ifdef CONFIG_TIMERFD |