svn commit: r295465 - head/usr.sbin/services_mkdb

Stefan Esser se at FreeBSD.org
Wed Feb 10 09:40:46 UTC 2016


Author: se
Date: Wed Feb 10 09:40:45 2016
New Revision: 295465
URL: https://svnweb.freebsd.org/changeset/base/295465

Log:
  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

Modified:
  head/usr.sbin/services_mkdb/services_mkdb.c

Modified: head/usr.sbin/services_mkdb/services_mkdb.c
==============================================================================
--- head/usr.sbin/services_mkdb/services_mkdb.c	Wed Feb 10 09:19:29 2016	(r295464)
+++ head/usr.sbin/services_mkdb/services_mkdb.c	Wed Feb 10 09:40:45 2016	(r295465)
@@ -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);


More information about the svn-src-all mailing list