projects
/
platform
/
upstream
/
lmdb.git
/ commitdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
| commitdiff |
tree
raw
|
patch
| inline |
side by side
(parent:
26e226b
)
ITS#7682 F_NOCACHE: Allow error, skip any O_DIRECT
author
Hallvard Furuseth
<hallvard@openldap.org>
Tue, 6 Sep 2016 15:41:02 +0000
(17:41 +0200)
committer
Hallvard Furuseth
<hallvard@openldap.org>
Sun, 25 Sep 2016 06:12:56 +0000
(08:12 +0200)
We can run without F_NOCACHE if it fails. And we do not know
what combining it with O_DIRECT means, if a system has both.
libraries/liblmdb/mdb.c
patch
|
blob
|
history
diff --git
a/libraries/liblmdb/mdb.c
b/libraries/liblmdb/mdb.c
index
b0518a5
..
ecfd5ca
100644
(file)
--- a/
libraries/liblmdb/mdb.c
+++ b/
libraries/liblmdb/mdb.c
@@
-10169,18
+10169,13
@@
mdb_env_copy2(MDB_env *env, const char *path, unsigned int flags)
}
if (env->me_psize >= env->me_os_psize) {
-#ifdef O_DIRECT
+#ifdef F_NOCACHE /* __APPLE__ */
+ (void) fcntl(newfd, F_NOCACHE, 1);
+#elif defined O_DIRECT
/* Set O_DIRECT if the file system supports it */
if ((rc = fcntl(newfd, F_GETFL)) != -1)
(void) fcntl(newfd, F_SETFL, rc | O_DIRECT);
#endif
-#ifdef F_NOCACHE /* __APPLE__ */
- rc = fcntl(newfd, F_NOCACHE, 1);
- if (rc) {
- rc = ErrCode();
- goto leave;
- }
-#endif
}
rc = mdb_env_copyfd2(env, newfd, flags);