aboutsummaryrefslogtreecommitdiff
path: root/src/mmap.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/mmap.c')
-rw-r--r--src/mmap.c14
1 files changed, 9 insertions, 5 deletions
diff --git a/src/mmap.c b/src/mmap.c
index 008a0f8..48e84ae 100644
--- a/src/mmap.c
+++ b/src/mmap.c
@@ -392,12 +392,16 @@ _gdbm_mapped_lseek (GDBM_FILE dbf, off_t offset, int whence)
int
_gdbm_mapped_sync (GDBM_FILE dbf)
{
+ int rc;
+
if (dbf->mapped_region)
- {
- return msync (dbf->mapped_region, dbf->mapped_size,
- MS_SYNC | MS_INVALIDATE);
- }
- return fsync (dbf->desc);
+ rc = msync (dbf->mapped_region, dbf->mapped_size,
+ MS_SYNC | MS_INVALIDATE);
+ else
+ rc = fsync (dbf->desc);
+ if (rc)
+ GDBM_SET_ERRNO (dbf, GDBM_FILE_SYNC_ERROR, TRUE);
+ return rc;
}
#endif

Return to:

Send suggestions and report system problems to the System administrator.