diff options
author | se <se@FreeBSD.org> | 2016-02-10 09:40:45 +0000 |
---|---|---|
committer | se <se@FreeBSD.org> | 2016-02-10 09:40:45 +0000 |
commit | 24923780b3ff6d6629effa4f955a277ebcd6b7fe (patch) | |
tree | bbb1a2352d9805c14d1de0c1db320881752c078c /usr.sbin/services_mkdb | |
parent | 4cf4fddec8c3df6f92a4c842133d17613c459575 (diff) | |
download | FreeBSD-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
Diffstat (limited to 'usr.sbin/services_mkdb')
-rw-r--r-- | usr.sbin/services_mkdb/services_mkdb.c | 2 |
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); |