The system call parameters are wrong for little endian. Ok to commit to both 2.7 and HEAD? Andreas 2007-10-23 Andreas Jaeger [BZ #5208] * sysdeps/unix/sysv/linux/readahead.c (__readahead): Use __LONG_LONG_PAIR to handle little endian byte order. Suggested by abhishekrai@google.com ============================================================ Index: sysdeps/unix/sysv/linux/readahead.c --- sysdeps/unix/sysv/linux/readahead.c 20 Jan 2004 23:21:34 -0000 1.3 +++ sysdeps/unix/sysv/linux/readahead.c 23 Oct 2007 07:03:51 -0000 @@ -1,5 +1,5 @@ /* Provide kernel hint to read ahead. - Copyright (C) 2002, 2003, 2004 Free Software Foundation, Inc. + Copyright (C) 2002, 2003, 2004, 2007 Free Software Foundation, Inc. This file is part of the GNU C Library. The GNU C Library is free software; you can redistribute it and/or @@ -30,8 +30,10 @@ ssize_t __readahead (int fd, off64_t offset, size_t count) { - return INLINE_SYSCALL (readahead, 4, fd, (off_t) (offset >> 32), - (off_t) (offset & 0xffffffff), count); + return INLINE_SYSCALL (readahead, 4, fd, + __LONG_LONG_PAIR ((off_t) (offset >> 32), + (off_t) (offset & 0xffffffff)), + count); } #else ssize_t -- Andreas Jaeger, Director Platform / openSUSE, aj@suse.de SUSE LINUX Products GmbH, GF: Markus Rex, HRB 16746 (AG Nürnberg) Maxfeldstr. 5, 90409 Nürnberg, Germany GPG fingerprint = 93A3 365E CE47 B889 DF7F FED1 389A 563C C272 A126