about summary refs log tree commit diff
path: root/sysdeps/unix/sysv/linux/alpha/fdatasync.c
diff options
context:
space:
mode:
Diffstat (limited to 'sysdeps/unix/sysv/linux/alpha/fdatasync.c')
-rw-r--r--sysdeps/unix/sysv/linux/alpha/fdatasync.c26
1 files changed, 5 insertions, 21 deletions
diff --git a/sysdeps/unix/sysv/linux/alpha/fdatasync.c b/sysdeps/unix/sysv/linux/alpha/fdatasync.c
index c9424e267f..c8b711ebe9 100644
--- a/sysdeps/unix/sysv/linux/alpha/fdatasync.c
+++ b/sysdeps/unix/sysv/linux/alpha/fdatasync.c
@@ -26,39 +26,23 @@
 
 #include <kernel-features.h>
 
-static int
-do_fdatasync (int fd)
+int
+__fdatasync (int fd)
 {
 #ifdef __ASSUME_FDATASYNC
-  return INLINE_SYSCALL (fdatasync, 1, fd);
+  return SYSCALL_CANCEL (fdatasync, fd);
 #elif defined __NR_fdatasync
   static int __have_no_fdatasync;
 
   if (!__builtin_expect (__have_no_fdatasync, 0))
     {
-      int result = INLINE_SYSCALL (fdatasync, 1, fd);
+      int result = SYSCALL_CANCEL (fdatasync, fd);
       if (__builtin_expect (result, 0) != -1 || errno != ENOSYS)
 	return result;
 
       __have_no_fdatasync = 1;
     }
 #endif
-  return INLINE_SYSCALL (fsync, 1, fd);
-}
-
-int
-__fdatasync (int fd)
-{
-  if (SINGLE_THREAD_P)
-    return do_fdatasync (fd);
-
-  int oldtype = LIBC_CANCEL_ASYNC ();
-
-  int result = do_fdatasync (fd);
-
-  LIBC_CANCEL_RESET (oldtype);
-
-  return result;
+  return SYSCALL_CANCEL (fsync, fd);
 }
-
 weak_alias (__fdatasync, fdatasync)