make fsync, fdatasync, and msync cancellation points
authorTrutz Behn <me@trutz.be>
Wed, 28 Jan 2015 17:46:54 +0000 (18:46 +0100)
committerRich Felker <dalias@aerifal.cx>
Sat, 31 Jan 2015 03:05:40 +0000 (22:05 -0500)
these are mandatory cancellation points per POSIX, so their omission
was a conformance bug.

src/mman/msync.c
src/unistd/fdatasync.c
src/unistd/fsync.c

index bb20475..fcd8cdf 100644 (file)
@@ -3,5 +3,5 @@
 
 int msync(void *start, size_t len, int flags)
 {
-       return syscall(SYS_msync, start, len, flags);
+       return syscall_cp(SYS_msync, start, len, flags);
 }
index dd4d41c..3895ae5 100644 (file)
@@ -3,5 +3,5 @@
 
 int fdatasync(int fd)
 {
-       return syscall(SYS_fdatasync, fd);
+       return syscall_cp(SYS_fdatasync, fd);
 }
index dc4727c..7a1c80b 100644 (file)
@@ -3,5 +3,5 @@
 
 int fsync(int fd)
 {
-       return syscall(SYS_fsync, fd);
+       return syscall_cp(SYS_fsync, fd);
 }