Don't fsync() read-only filehandles (thanks, Andreas!).
This sounds harmless, but it actually forces a write of the inode's atime, which means a lot of painful and unnecessary disk i/o on some filesystems. Should be a good speedup on games that read a lot of small files on Unix.
This commit is contained in:
parent
26f5eb481e
commit
09baf99aa4
|
@ -136,6 +136,9 @@ SLB archiver:
|
|||
Bug fixes:
|
||||
Dmitry Marakasov
|
||||
|
||||
Bug fixes:
|
||||
Andreas Karlsson
|
||||
|
||||
Other stuff:
|
||||
Your name here! Patches go to icculus@icculus.org ...
|
||||
|
||||
|
|
|
@ -279,7 +279,8 @@ PHYSFS_sint64 __PHYSFS_platformFileLength(void *opaque)
|
|||
int __PHYSFS_platformFlush(void *opaque)
|
||||
{
|
||||
const int fd = *((int *) opaque);
|
||||
BAIL_IF_MACRO(fsync(fd) == -1, errcodeFromErrno(), 0);
|
||||
if ((fcntl(fd, F_GETFL) & O_ACCMODE) != O_RDONLY)
|
||||
BAIL_IF_MACRO(fsync(fd) == -1, errcodeFromErrno(), 0);
|
||||
return 1;
|
||||
} /* __PHYSFS_platformFlush */
|
||||
|
||||
|
|
Loading…
Reference in New Issue