Commit 1631fcea authored by Chris Metcalf's avatar Chris Metcalf

compat: use sys_sendfile64() implementation for sendfile syscall

<asm-generic/unistd.h> was set up to use sys_sendfile() for the 32-bit
compat API instead of sys_sendfile64(), but in fact the right thing to
do is to use sys_sendfile64() in all cases.  The 32-bit sendfile64() API
in glibc uses the sendfile64 syscall, so it has to be capable of doing
full 64-bit operations.  But the sys_sendfile() kernel implementation
has a MAX_NON_LFS test in it which explicitly limits the offset to 2^32.
So, we need to use the sys_sendfile64() implementation in the kernel
for this case.

Cc: <stable@kernel.org>
Acked-by: default avatarArnd Bergmann <arnd@arndb.de>
Signed-off-by: default avatarChris Metcalf <cmetcalf@tilera.com>
parent 48b25c43
...@@ -218,7 +218,7 @@ __SC_COMP(__NR_pwritev, sys_pwritev, compat_sys_pwritev) ...@@ -218,7 +218,7 @@ __SC_COMP(__NR_pwritev, sys_pwritev, compat_sys_pwritev)
/* fs/sendfile.c */ /* fs/sendfile.c */
#define __NR3264_sendfile 71 #define __NR3264_sendfile 71
__SC_3264(__NR3264_sendfile, sys_sendfile64, sys_sendfile) __SYSCALL(__NR3264_sendfile, sys_sendfile64)
/* fs/select.c */ /* fs/select.c */
#define __NR_pselect6 72 #define __NR_pselect6 72
......
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