summaryrefslogtreecommitdiff
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)