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 bb20475b4de3c38effeb0e753b99163c520c020a..fcd8cdf9fc17de3a366f1f512be06f0fdbd79672 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 dd4d41c75c7e77d54b7b374b6c3b4439065f8653..3895ae530c75de20300c2c5c8961c99d30befb1d 100644 (file)
@@ -3,5 +3,5 @@
 
 int fdatasync(int fd)
 {
-       return syscall(SYS_fdatasync, fd);
+       return syscall_cp(SYS_fdatasync, fd);
 }
index dc4727cc1d17cfccbc8793d6f140839462ca24dd..7a1c80b5de0d801d853163fed58f4372b4771f43 100644 (file)
@@ -3,5 +3,5 @@
 
 int fsync(int fd)
 {
-       return syscall(SYS_fsync, fd);
+       return syscall_cp(SYS_fsync, fd);
 }