about summary refs log tree commit diff
diff options
context:
space:
mode:
-rw-r--r--ChangeLog3
-rw-r--r--sysdeps/pthread/aio_misc.c8
2 files changed, 8 insertions, 3 deletions
diff --git a/ChangeLog b/ChangeLog
index 0cd489486e..468f3ed419 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,5 +1,8 @@
 2007-11-10  Ulrich Drepper  <drepper@redhat.com>
 
+	* sysdeps/pthread/aio_misc.c (handle_fildes_io): Avoid unnecessary
+	complications for 64-bit platforms.
+
 	* sysdeps/unix/sysv/linux/open64.c: Move __open64_2 implementation to..
 	* sysdeps/unix/sysv/linux/open64_2.c: ...here.  New file.
 	* sysdeps/unix/sysv/linux/Makefile [subdir=io] (sysdep_routines): Add
diff --git a/sysdeps/pthread/aio_misc.c b/sysdeps/pthread/aio_misc.c
index 3e1dbe9c63..fd3fcbb755 100644
--- a/sysdeps/pthread/aio_misc.c
+++ b/sysdeps/pthread/aio_misc.c
@@ -1,5 +1,5 @@
 /* Handle general operations.
-   Copyright (C) 1997, 1998, 1999, 2000, 2001, 2003, 2004, 2006
+   Copyright (C) 1997, 1998, 1999, 2000, 2001, 2003, 2004, 2006, 2007
    Free Software Foundation, Inc.
    This file is part of the GNU C Library.
    Contributed by Ulrich Drepper <drepper@cygnus.com>, 1997.
@@ -512,7 +512,8 @@ handle_fildes_io (void *arg)
 	     by signals.  */
 	  if ((aiocbp->aiocb.aio_lio_opcode & 127) == LIO_READ)
 	    {
-	      if (aiocbp->aiocb.aio_lio_opcode & 128)
+	      if (sizeof (off_t) != sizeof (off64_t)
+		  && aiocbp->aiocb.aio_lio_opcode & 128)
 		aiocbp->aiocb.__return_value =
 		  TEMP_FAILURE_RETRY (__pread64 (fildes, (void *)
 						 aiocbp->aiocb64.aio_buf,
@@ -537,7 +538,8 @@ handle_fildes_io (void *arg)
 	    }
 	  else if ((aiocbp->aiocb.aio_lio_opcode & 127) == LIO_WRITE)
 	    {
-	      if (aiocbp->aiocb.aio_lio_opcode & 128)
+	      if (sizeof (off_t) != sizeof (off64_t)
+		  && aiocbp->aiocb.aio_lio_opcode & 128)
 		aiocbp->aiocb.__return_value =
 		  TEMP_FAILURE_RETRY (__pwrite64 (fildes, (const void *)
 						  aiocbp->aiocb64.aio_buf,