diff options
Diffstat (limited to 'sysdeps/unix/sysv/linux/alpha/fdatasync.c')
-rw-r--r-- | sysdeps/unix/sysv/linux/alpha/fdatasync.c | 26 |
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) |