summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorse <se@FreeBSD.org>2016-02-10 09:40:45 +0000
committerse <se@FreeBSD.org>2016-02-10 09:40:45 +0000
commit24923780b3ff6d6629effa4f955a277ebcd6b7fe (patch)
treebbb1a2352d9805c14d1de0c1db320881752c078c
parent4cf4fddec8c3df6f92a4c842133d17613c459575 (diff)
downloadFreeBSD-src-24923780b3ff6d6629effa4f955a277ebcd6b7fe.zip
FreeBSD-src-24923780b3ff6d6629effa4f955a277ebcd6b7fe.tar.gz
Remove O_SYNC from the options passed to dbmopen().
The services db is created as a temporary file that is moved over the existing file after completion. Thus there is no need to immediately flush all created db records to the temporary file. This speeds up creation of the services db by a factor of 500 on my ZFS based /var/db filesytem (from 110 seconds to 0.235 seconds). MFC after: 1 week
-rw-r--r--usr.sbin/services_mkdb/services_mkdb.c2
1 files changed, 1 insertions, 1 deletions
diff --git a/usr.sbin/services_mkdb/services_mkdb.c b/usr.sbin/services_mkdb/services_mkdb.c
index 9ea66de..c928ea9 100644
--- a/usr.sbin/services_mkdb/services_mkdb.c
+++ b/usr.sbin/services_mkdb/services_mkdb.c
@@ -141,7 +141,7 @@ main(int argc, char *argv[])
err(1, "Cannot install exit handler");
(void)snprintf(tname, sizeof(tname), "%s.tmp", dbname);
- db = dbopen(tname, O_RDWR | O_CREAT | O_EXCL | O_SYNC,
+ db = dbopen(tname, O_RDWR | O_CREAT | O_EXCL,
(S_IRUSR | S_IWUSR | S_IRGRP | S_IROTH), DB_HASH, &hinfo);
if (!db)
err(1, "Error opening temporary database `%s'", tname);
OpenPOWER on IntegriCloud