lkml.org 
[lkml]   [2012]   [Mar]   [26]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    From
    Date
    Subject[PATCH] 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>
    Signed-off-by: Chris Metcalf <cmetcalf@tilera.com>
    ---
    include/asm-generic/unistd.h | 2 +-
    1 files changed, 1 insertions(+), 1 deletions(-)

    diff --git a/include/asm-generic/unistd.h b/include/asm-generic/unistd.h
    index 2292d1a..991ef01 100644
    --- a/include/asm-generic/unistd.h
    +++ b/include/asm-generic/unistd.h
    @@ -218,7 +218,7 @@ __SC_COMP(__NR_pwritev, sys_pwritev, compat_sys_pwritev)

    /* fs/sendfile.c */
    #define __NR3264_sendfile 71
    -__SC_3264(__NR3264_sendfile, sys_sendfile64, sys_sendfile)
    +__SYSCALL(__NR3264_sendfile, sys_sendfile64)

    /* fs/select.c */
    #define __NR_pselect6 72
    --
    1.6.5.2


    \
     
     \ /
      Last update: 2012-03-26 22:39    [W:0.025 / U:59.288 seconds]
    ©2003-2016 Jasper Spaans. hosted at Digital OceanAdvertise on this site