The POSIX shared memory object implementation on FreeBSD is not file
based and doesn't support fsync(2).
Signed-off-by: Michael Jeanson <mjeanson@efficios.com>
Signed-off-by: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
Change-Id: Ie170254122aeab858a12c0522dc4e78075f243f9
PERROR("zero_file");
goto error_zero_file;
}
+
/*
* Also ensure the file metadata is synced with the storage by using
- * fsync(2).
+ * fsync(2). Some platforms don't allow fsync on POSIX shm fds, ignore
+ * EINVAL accordingly.
*/
ret = fsync(shmfd);
- if (ret) {
+ if (ret && errno != EINVAL) {
PERROR("fsync");
goto error_fsync;
}