port: fsync(2) on a POSIX shm fd returns EINVAL on FreeBSD
[lttng-ust.git] / libringbuffer / shm.c
index 566ed467fe2f715bc60f56449b222964c8b51acd..1ac59f9eee138c2744a5ada5bd58c05476de9800 100644 (file)
@@ -149,12 +149,14 @@ struct shm_object *_shm_object_table_alloc_shm(struct shm_object_table *table,
                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;
        }
This page took 0.023462 seconds and 4 git commands to generate.