From 0a54ab53f2bbbd380b019dc665047fb3acf37e3a Mon Sep 17 00:00:00 2001 From: Ulrich Drepper Date: Fri, 25 May 2007 05:21:07 +0000 Subject: * sysdeps/powerpc/tls.h (tcbhead_t): Add gscope_flag. (THREAD_GSCOPE_FLAG_UNUSED, THREAD_GSCOPE_FLAG_USED, THREAD_GSCOPE_FLAG_WAIT): Define. (THREAD_GSCOPE_GET_FLAG, THREAD_GSCOPE_SET_FLAG, THREAD_GSCOPE_RESET_FLAG, THREAD_GSCOPE_WAIT): Define. * sysdeps/i386/tls.h (THREAD_GSCOPE_WAIT): Don't use PTR_DEMANGLE. (THREAD_GSCOPE_GET_FLAG): Define. * sysdeps/x86_64/tls.h (THREAD_GSCOPE_GET_FLAG): Define. * allocatestack.c (__wait_lookup_done): Use THREAD_GSCOPE_GET_FLAG instead of ->header.gscope_flag directly. --- sysdeps/unix/sysv/linux/open64.c | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) (limited to 'sysdeps/unix') diff --git a/sysdeps/unix/sysv/linux/open64.c b/sysdeps/unix/sysv/linux/open64.c index a38a31b7a0..c52ce39db1 100644 --- a/sysdeps/unix/sysv/linux/open64.c +++ b/sysdeps/unix/sysv/linux/open64.c @@ -63,6 +63,15 @@ __open64_2 (file, oflag) if (oflag & O_CREAT) __fortify_fail ("invalid open64 call: O_CREAT without mode"); - return __open64 (file, oflag); + if (SINGLE_THREAD_P) + return INLINE_SYSCALL (open, 2, file, oflag | O_LARGEFILE); + + int oldtype = LIBC_CANCEL_ASYNC (); + + int result = INLINE_SYSCALL (open, 2, file, oflag | O_LARGEFILE); + + LIBC_CANCEL_RESET (oldtype); + + return result; } #endif -- cgit v1.2.3